2016-01-26 60 views
1

我正在使用laravel 5.1.28,homestead和postgres開展我的第一個laravel項目。作曲家更新後的回溯步驟引入日誌錯誤

最近我第一次更新了composer.json(並在第一次做了作曲家更新),現在在我的沙盒中一切看起來不錯,但是我的版本在heroku中失敗,出現以下錯誤:

生成優化的自動加載文件

php artisan clear-compiled PHP Fatal error: Uncaught ReflectionException: Class log does not exist in /tmp/build_4b890192877bdbf1f605fbefdc7b2f34/dianekaplan-Family-laravel-e49374e/vendor/laravel/framework/src/Illuminate/Container/Container.php:741

我已經通過大約5線程從此錯誤讀取和嘗試,解決不同的問題,其他國家不得不導致這種錯誤的各種解決方法,但他們都不是我的。

所以有一個不同的問題:我如何從作曲家的角度回到過去? composer.lock是否與git搭配在一起,所以我理論上可以回到那一點,能夠再次獲得成功的構建,然後有一天我有了一個好友並有時間在這個影響下工作時再做一次作曲家更新? (我是一個新手,所以像這樣的問題是癱瘓)

什麼方法可以讓我回到我暫時在哪裏?

根據評論中的反饋,我嘗試了: - 用構建成功後仍然存在的版本替換我的composer.lock(謝謝,git!),然後執行作曲家安裝(而不是更新,所以它會尊重這些舊的版本號) - 但是之後構建仍然失敗,出現 以上的相同錯誤 - 作曲家轉儲,作曲家更新 - 無腳本和作曲家更新(按此順序),但之後構建仍失敗同樣的錯誤上面

:(:(:(

下面是在我的composer.json:

{ 
    "name": "laravel/laravel", 
    "description": "The Laravel Framework.", 
    "keywords": ["framework", "laravel"], 
    "license": "MIT", 
    "type": "project", 

    "require": { 
     "php": ">=5.5.9", 
     "laravel/framework": "5.1.*", 

     "doctrine/dbal": "^2.5", 
     "illuminate/html": "^5.0", 
     "laracasts/flash": "^1.3", 
     "cloudinary/cloudinary_php": "dev-master", 
     "jrm2k6/cloudder": "0.2.*", 
     "Illuminate/Support": "^5.1" 
    }, 
    "require-dev": { 
     "fzaninotto/faker": "~1.4", 
     "mockery/mockery": "0.9.*", 
     "phpunit/phpunit": "~4.0", 
     "phpspec/phpspec": "~2.1", 
     "laracasts/generators": "^1.1" 
    }, 

    "autoload": { 
     "classmap": [ 
      "database", 
      "app/mailers" 
     ], 
     "psr-4": { 
      "App\\": "app/" 
     } 
    }, 
    "autoload-dev": { 
     "classmap": [ 
      "tests/TestCase.php" 
     ] 
    }, 
    "scripts": { 
     "post-install-cmd": [ 
      "php artisan clear-compiled", 
      "php artisan optimize" 
     ], 
     "pre-update-cmd": [ 
      "php artisan clear-compiled" 
     ], 
     "post-update-cmd": [ 
      "php artisan optimize" 
     ], 
     "post-root-package-install": [ 
      "php -r \"copy('.env.example', '.env');\"" 
     ], 
     "post-create-project-cmd": [ 
      "php artisan key:generate" 
     ] 
    }, 
    "config": { 
     "preferred-install": "dist" 
    } 


} 
+0

你使用git或其他版本控制? – user3158900

+0

嘗試:作曲家轉儲,作曲家更新 - 無腳本和作曲家更新的順序。 –

+0

非常感謝您的想法 - 我瞎了眼,所以我非常感謝您的幫助。 Ayo Akinyemi,我做到了,但是我後來的構建仍然失敗,出現了同樣的錯誤。 @ user3158900:是的,我使用git,它可以幫助我嗎?我手動更換了我的composer.lock,並且做了作曲家安裝,並且錯誤仍然發生。有更好的方法去嗎? –

回答

0

我試過composer update在5.1應用程序中使用你的composer.json,並沒有遇到任何問題 - 所以錯誤可能來自你的應用程序的某處代碼 - 它看起來很可能是你使用的例如Log外觀來記錄一些東西。 Log::error('message'),但您已將其編寫爲log::error('message')。發現後,你仍然可以有更新時同樣的錯誤,在這種情況下運行composer update前暫時從composer.json如下:有在你的依賴幾個其他的問題

在一個側面說明:

  • illuminate/html已被棄用/拋棄,用laravelcollective/html代替替換它。
  • illuminate/supportlaravel/framework的一部分,所以是不必要的,可以刪除。
+0

謝謝!當我今晚回家時,請檢查一下。 –