iT邦幫忙

0

【已解決】laravel套件安裝錯誤 There are no commads defined in the "base" namespace.

各位好
我公司大約在1、2年前有依據laravel為基礎開發一個網站平台的套件
目前要拿出來架設環境時,居然無法安裝成功(傻眼…

======================== 環境配置 ========================
電腦環境為win10
安裝軟體有git、composer2.1.12、docker,這三個皆是到官網抓最新版本
並且composer所需要的php7,是使用appserv-win32-8.6.0中的php7
最重要的laravel版本是:laravel "5.7.*

======================== 主要問題 ========================
印像中以前使用compser dumpautoload是不會有很多警告的,警告訊息如下(只有貼一小部分)
https://ithelp.ithome.com.tw/upload/images/20211116/20137870SFMY5C8yIS.png

但若將這些警告無視了,則在執行php artisan base:install(base為自行開發的專案套件)指令會發生錯誤,錯誤如下:
https://ithelp.ithome.com.tw/upload/images/20211116/20137870CK0FapOSN5.png

======================== 流程說明 ========================
以下是架設環境的簡略流程說明
01. 於命令提示字元,切換至d碟
02. 執行指令git clone https://github.com/laradock/laradock.git Laradock
03. 執行指令cp env-example .env
04. 修改.env檔案,設定APP_CODE_PATH_HOST =D:/laravel_prj/
05. 啟動laradock,執行指令docker-compose up -d nginx mysql phpmyadmin
06. 進入容器,執行指令docker-compose exec workspace bash
07. 建立專案,執行指令composer create-project --prefer-dist laravel/laravel laravel "5.7.*"
08. 設定host,到C:\WINDOWS\system32\drivers\etc,並在裡面新增一行:127.0.0.1 laravel.test
09. 重啟容器,執行指令docker-compose down``docker-compose up -d nginx mysql phpmyadmin
10. laravel基礎架設完成畫面
https://ithelp.ithome.com.tw/upload/images/20211116/201378704YDN60ViwB.png

  1. 在laravel專案下,新增資料夾,執行指令mkdir packages
  2. 將網站套件下載側packages中,執行指令git clone https://gitlab.com/numax/ranking_base.git base
  3. 切換至base資料夾,並切換到開發分支,執行指令git checkout develop
  4. composer.json檔案中autoload的psr-4中加入一行
    "Ranking\Base\": "packages/base",並執行指令composer dump
    https://ithelp.ithome.com.tw/upload/images/20211116/20137870NKpkaADVgV.png
    ★ 此步與公司系統文件的截圖畫面是不同的,下圖為公司文件的截圖,而實際run出來結果,會是上方「主要問題」的第一張圖相同,會有許多警告。https://ithelp.ithome.com.tw/upload/images/20211116/20137870GoGJhvfenF.png
  5. 加入Service Providers,在config\app.php 檔案中加入一行Ranking\Base\Providers\ModuleProvider::class,
  6. 套件安裝,在composer.json中,把要安裝的套件加上去,並執行指令composer update
    https://ithelp.ithome.com.tw/upload/images/20211116/20137870exHI6SEcDf.png
  7. 開始安裝網站,執行指令php artisan base:install,結果會發生上方「主要問題」的第二張圖片,找不到base的可執行指令。

There are no commads defined in the "base" namespace.

上網查詢這個問題的關鍵字仍無法排除…
個人是覺得,會不會是composer、docker版本太新,導致當時的專案套件現在在架設時會有不相容問題,又或者是有其他可能的問題,還請各位不吝指教一下,謝謝

========================後續========================
網路上有查到有人說可以用php artisan optimize
執行後,原本沒有問題的環境,就出現錯誤
後續的作法是將routes/api.php與routes/web.php的程式碼作註解,這問題就解決,然後又回歸到 There are no commads defined in the "base" namespace. 這個問題了
https://ithelp.ithome.com.tw/upload/images/20211116/20137870MlhD1rVxXp.png
https://ithelp.ithome.com.tw/upload/images/20211116/201378705z828SaRw9.png

試試「composer dump-autoload」
breakgod iT邦新手 2 級 ‧ 2021-11-22 17:16:31 檢舉
後來找到問題點了,參考以下三篇文章試出來了,十分感謝XD
https://github.com/laravel/framework/issues/7319#issuecomment-73362932
https://stackoverflow.com/questions/45266254/laravel-unable-to-prepare-route-for-serialization-uses-closure
https://exerror.com/basecontroller-php-does-not-comply-with-psr-4-autoloading-standard-skipping/
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答