merged branch pete-otaqui/compile_with_autoload_classmap (PR #295)
Commits ------- 3f22ac3c added autoload_classmap.php to the list of .composer files to include Discussion ---------- added autoload_classmap.php to the list of .composer files to include Hi, I suspect this is my own stupidity since no-one else has reported it, but for me the silex.phar dies when required because it doesn't contain a file that it tries to require: "vendor/.composer/autoload_classmap.php". I've tried the silex.phar from the project homepage, and also compiled my own from the source code with the same result. Unpacking either shows indeed that there is no autoload_classmap.php file. Had a quick look and saw that some other vendor/.composer/*.php files were listed in the Compiler.php class, added in the missing classmap file, and everything seemed to work fine. As I said, I think I must be missing something, because otherwise silex would be completely broken for just about everybody! using the phar! --------------------------------------------------------------------------- by chanmix51 at 2012-03-28T12:50:23Z Hi, Afaik, the .phar archive does not work with composer as it has not been managed by it. Hence composer does not know anything about phars you could use. I may be wrong but If you use the phar you should use Silex's autoloader or add silex to your dependencies in your `composer.json` instead. --------------------------------------------------------------------------- by igorw at 2012-03-28T13:54:31Z @pete-otaqui This should indeed fix the issue👍 --------------------------------------------------------------------------- by pete-otaqui at 2012-03-28T14:19:44Z I think you misunderstand me. I'm not using composer, I just tried the example _from the Silex homepage_: ```php <?php require_once __DIR__.'/silex.phar'; $app = new Silex\Application(); $app->get('/hello/{name}', function ($name) use ($app) { return 'Hello '.$app->escape($name); }); $app->run(); ``` For me this throws the following error: ``` Warning: require(phar:///var/www/silex/silex.phar/vendor/.composer/autoload_classmap.php): failed to open stream: phar error: "vendor/.composer/autoload_classmap.php" is not a file in phar "/var/www/silex/silex.phar" in phar:///var/www/silex/silex.phar/vendor/.composer/autoload.php on line 17 Fatal error: require(): Failed opening required 'phar:///var/www/silex/silex.phar/vendor/.composer/autoload_classmap.php' (include_path='.:/usr/share/php:/usr/share/pear') in phar:///var/www/silex/silex.phar/vendor/.composer/autoload.php on line 17 ``` If you look at the commit I made, you'll see that the Compiler class (which creates the silex.phar) does indeed include some stuff from vendor/.composer/ ... it's just that it doesn't include "autoload_classmap.php". Possibly this file is supposed to be automatically generated by something inside silex.phar, and for some reason mine isn't writeable, but in that case I ought really to get a different error. --------------------------------------------------------------------------- by chanmix51 at 2012-03-28T14:23:02Z Oh sorry, didn't get what the problem was. --------------------------------------------------------------------------- by igorw at 2012-03-28T18:41:33Z Fix confirmed👍 @fabpot please merge asap --------------------------------------------------------------------------- by simensen at 2012-03-29T15:43:54Z I was just going to open a PR on this. Good thing I checked first. :)
Showing
Please register or sign in to comment