composer.json文件怎么使用?laravel 如何使用composer自動加載自己定義的文件夾?
一. 問題
當我們 clone下來一個laravel框架,接著就開始我們表演,但是我們根據業務需求需要創建一些自定義的文件夾,那么我們該如何加載他們呢,如何避免這類錯誤[symfonyComponentDebugExceptionFatalThrowableError] class ‘toolsalyduanxinapi_demoSmsDemo’ not found
二:分三步來解決這個問題
在laravel 中項目根目錄下創建自己的文件夾,例如我在項目根目錄下創建了一個tools文件夾。
在項目文件夾的根目錄下找到composer.json文件,在autoload里添加psr-4節點
"psr-4":?{ ????????????"tools":?"tools/" ????????}
接著執行
composer?dump-autoload?-o
至此我們就加載成功啦
三. 解釋一下 composer dump-autoload 這條命令
下面是composer官方文檔中關于dump-autoload命令的解釋:
dump-autoload
If?you?need?to?update?the?autoloader(類加載器)?because?of?new?classes?in?a?classmap?package?for?example,?you?can?use?"dump-autoload"?to?do?that?without?having?to?go?through?an?install?or?update. Additionally,?it?can?dump?an?optimized(優化)?autoloader?that?converts(轉化)?PSR-0/4?packages?into?classmap?ones?for?performance(性能)?reasons.?In?large?applications?with?many?classes,?the?autoloader?can?take?up?a?substantial?portion?of?every?request's?time.?Using?classmaps?for?everything?is?less?convenient?in?development,?but?using?this?option?you?can?still?use?PSR-0/4?for?convenience?and?classmaps?for?performance. Options: --no-scripts:?Skips?the?execution?of?all?scripts?defined?in?composer.json?file. --optimize?(-o):?Convert?PSR-0/4?autoloading?to?classmap?to?get?a?faster?autoloader.?This?is?recommended?especially?for?production,?but?can?take?a?bit?of?time?to?run?so?it?is?currently?not?done?by?default. --classmap-authoritative?(-a):?Autoload?classes?from?the?classmap?only.?Implicitly?enables?--optimize. --apcu:?Use?APCu?to?cache?found/not-found?classes. --no-dev:?Disables?autoload-dev?rules.
其中官方推薦的參數是 -o,即 composer dump-autoload -o?
這個命令可以將PSR-0/4自動加載成classmap來獲取一個更快速的類加載器,推薦生產環境使用,但是,可能需要一點時間來運行,因此目前不是默認。
更多composer技術文章,請訪問composer使用教程欄目!
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦