2013-02-22 58 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的機器上。