2013-02-22 57 views
1

我已经设置了一个项目locale使用作曲家来自动加载我的供应商和模块。 这是在运行Nginx的Windows XP机器上完成的。作曲家自动加载不在生产服务器上工作

当我将所有内容都同步到我的生产服务器上,运行LAMP时,自动装入器停止工作,并且我找不到每个类。

由于这是一个共享主机,我无法运行composer.phar更新以尝试刷新类图名称空间。

任何人都知道可能发生了什么?

+ INFO:

<?php 

// autoload_namespaces.php generated by Composer 

$vendorDir = dirname(__DIR__); 
$baseDir = dirname(dirname($vendorDir)); 

return array(
    'Zend\\' => $vendorDir . '/zendframework/zendframework/library/', 
    'ZendTest\\' => $vendorDir . '/zendframework/zendframework/tests/', 
    'Symfony\\Component\\Console' => $vendorDir . '/symfony/console/', 
    'Doctrine\\ORM' => $vendorDir . '/doctrine/orm/lib/', 
    'Doctrine\\DBAL' => $vendorDir . '/doctrine/dbal/lib/', 
    'Doctrine\\Common' => $vendorDir . '/doctrine/common/lib/', 
    'DoctrineORMModule\\' => $vendorDir . '/doctrine/doctrine-orm-module/src/', 
    'DoctrineORMModuleTest\\' => $vendorDir . '/doctrine/doctrine-orm-module/tests/', 
    'DoctrineModule\\' => $vendorDir . '/doctrine/doctrine-module/src/', 
    'DoctrineModuleTest\\' => $vendorDir . '/doctrine/doctrine-module/tests/', 
    'Application\\' => $baseDir . '/module/Application/src', 
); 



<?php 

// autoload_classmap.php generated by Composer 

$vendorDir = dirname(__DIR__); 
$baseDir = dirname(dirname($vendorDir)); 

return array(
); 

$装载机返回:

Composer\Autoload\ClassLoader Object 
(
    [prefixes:Composer\Autoload\ClassLoader:private] => Array 
     (
      [Zend\] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/library/ 
       ) 

      [ZendTest\] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/tests/ 
       ) 

      [Symfony\Component\Console] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/symfony/console/ 
       ) 

      [Doctrine\ORM] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/orm/lib/ 
       ) 

      [Doctrine\DBAL] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/dbal/lib/ 
       ) 

      [Doctrine\Common] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/common/lib/ 
       ) 

      [DoctrineORMModule\] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/src/ 
       ) 

      [DoctrineORMModuleTest\] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/tests/ 
       ) 

      [DoctrineModule\] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/src/ 
       ) 

      [DoctrineModuleTest\] => Array 
       (
        [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/tests/ 
       ) 

      [Application\] => Array 
       (
        [0] => /home/XXXX/public_html/module/Application/src 
       ) 

     ) 

    [fallbackDirs:Composer\Autoload\ClassLoader:private] => Array 
     (
     ) 

    [useIncludePath:Composer\Autoload\ClassLoader:private] => 
    [classMap:Composer\Autoload\ClassLoader:private] => Array 
     (
     ) 

) 

++ INFO:

spl_autoload_functions: 

Array 
(
    [0] => Array 
     (
      [0] => Composer\Autoload\ClassLoader Object 
       (
        [prefixes:Composer\Autoload\ClassLoader:private] => Array 
         (
          [Zend\] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/library/ 
           ) 

          [ZendTest\] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/zendframework/zendframework/tests/ 
           ) 

          [Symfony\Component\Console] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/symfony/console/ 
           ) 

          [Doctrine\ORM] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/orm/lib/ 
           ) 

          [Doctrine\DBAL] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/dbal/lib/ 
           ) 

          [Doctrine\Common] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/common/lib/ 
           ) 

          [DoctrineORMModule\] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/src/ 
           ) 

          [DoctrineORMModuleTest\] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-orm-module/tests/ 
           ) 

          [DoctrineModule\] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/src/ 
           ) 

          [DoctrineModuleTest\] => Array 
           (
            [0] => /home/XXXX/public_html/vendor/doctrine/doctrine-module/tests/ 
           ) 

          [Application\] => Array 
           (
            [0] => /home/XXXX/public_html/module/Application/src 
           ) 

         ) 

        [fallbackDirs:Composer\Autoload\ClassLoader:private] => Array 
         (
         ) 

        [useIncludePath:Composer\Autoload\ClassLoader:private] => 
        [classMap:Composer\Autoload\ClassLoader:private] => Array 
         (
         ) 

       ) 

      [1] => loadClass 
     ) 

) 
+0

您是否还上传供应商/作曲家文件夹? – 2013-02-22 07:57:46

+0

@BramGerritsen是的,我做了 – MGP 2013-02-22 11:00:13

+0

你的'autoload_classmap.php'和'autoload_namespaces.php'看起来正确吗?你有没有尝试在'vendor/autoload.php'中放入'die()'来查看你的composer自动加载器是否被加载? – 2013-02-22 11:08:28

回答

1

的解决方案是str的从命名空间与/替换所有的'\所有模块自动加载器。

所以,这样的:

public function getAutoloaderConfig() { 
     return array(
      'Zend\Loader\StandardAutoloader' => array(
       'namespaces' => array(
        __NAMESPACE__ => __DIR__ . '/src/' . str_replace('\\', '/', __NAMESPACE__), 
       ), 
      ), 
     ); 
    } 

会得到一切如预期运行一个LAMP的机器上。