PHP 板


LINE

看板 PHP  RSS
※ 引述《q10242 (黑田祐司)》之銘言: : 想請問板上的各位先進 : 最近在寫laravel的自制package : 我想問的是 : 如果我的package裡面有兩個自製的 class : 都在同一個子資料夾 test裡面 : namespace 是test\foo 跟test\bar : 是不是Service provider的部分的boot 的 make方法 就只能 : $this->app->make(test\foo::class); : $this->app->make(test\bar::class); : 這樣寫兩次 : 不能test資料夾底下的一次全都load嗎? 跟 laravel 不熟,不過沒弄錯的話你可以把你要的東西放在 boot 的參數 laravel 會在 boot 的時候會很神奇的自動塞給你 https://laravel.com/docs/5.8/providers#the-boot-method 參照 Boot Method Dependency Injection : 第二個問題是 : 如果要在laravel寫test : 是不是一定要先用use載入要test的那個class 任何 class 使用前一定要先載入 不論是你自己 include,或是靠 autoload 自動載入,或是其他人寫的程式幫你載入 use 不會載入 class 只是用來表示「在現在這個 php 檔案裡面,這個短短的 Class 名字其實是那個很長的 class」 真正載入 class 的是 include,不論是你自己 include 還是 autoloader 幫你 include use Super\Database\Model\Chu; // 後面的 Chu 是 \Super\Database\Model\Chu 喔 use Super\Database\Model\Miew as Hehe; // 後面的 Hehe 是 \Super\Database\Model\Miew 喔 new Chu(); // 我會 new 一個 \Super\Database\Model\Chu 出來 new Miew(); // 我會噴 Error 給你看 // 因為我不認識 Miew 只認識 \Super\Database\Model\Miew 跟 Hehe 如果你設定都正確,composer 會幫你寫好能自動幫你載入 class 的程式 你只要在所有測試開始之前 include composer 做好的 autoload.php 就行了 至於這一行寫在哪裡,下一段會來說清楚 : 第三個問題是 : 如果要把test放進package資料夾裡面 : 要怎麼樣可以讓laravel裡面的phpunit打指令測試的時候吃得到這個test 預設狀態下 phpunit 會去讀你執行 phpunit 的路徑的 phpunit.xml 這個檔案會控制 phpunit 的執行設定,也包括 Test Suite 裡面有哪些檔案 (Test Suite 白話說就是「一組測試」。大專案可能有很多組測試,小專案有一組就可以了) 簡單的 phpunit.xml 長這樣 <?xml version="1.0" encoding="UTF-8"?> <phpunit bootstrap="./tests/bootstrap.php"> <testsuites> <testsuite name="Application Test Suite"> <directory>./tests/</directory> </testsuite> </testsuites> </phpunit> 乍看很長,但翻譯成白話其實只有兩句 => 執行測試之前,先執行 ./tests/bootstrap.php 通常我們會希望有隻檔案預先做些準備工作,例如上面提到的 include autoload.php 從 tests/ 去 vendor/ 資料夾,那就是 include __DIR__ . '/../vendor/autoload.php'; => 要執行的測試,是 ./tests/ 資料夾裡面所有的 *Test.php phpunit 預設會吃 *Test.php,只要你告訴他放在哪個資料夾裡面就好 也可以寫明要吃的檔案結尾,例如 <directory suffix="Test.php">./tests/</directory> 順帶一提,phpunit 也支援 phpt(PHP 官方的測試格式) 一樣是用 <directory suffix=".phpt">./tests/</directory> 來載入 這種格式雖然看起來很...很有古風,但是拿來測 2012 之前的程式還滿好用的 另,有些專案可能會放一個 phpunit.xml.dist,意義是一樣的 phpunit 會以 phpunit.xml 為優先,然後才是 phpunit.xml.dist 分兩個檔案的目的是,專案共用的可以放在 phpunit.xml.dist 但有時候你開發到一半想改一些你自己的設定,可以用 phpunit.xml 蓋過專案設定 欲知更多詳情,請參照官方文件 https://phpunit.readthedocs.io/en/8.0/configuration.html -- 不可以!那是黑鷹族的精神象徵! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.173.53.78
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PHP/M.1552842552.A.F7A.html ※ 編輯: GALINE (1.173.53.78), 03/18/2019 01:23:16
1F:推 q10242: 謝謝 03/18 08:48
※ 編輯: GALINE (60.248.122.206), 03/18/2019 12:06:20
2F:推 zx4109: 感謝,講的好詳細啊 03/18 23:00
3F:推 shvanta: 敬佩 03/21 21:17
4F:推 genius945: 推 03/22 00:52







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Boy-Girl站內搜尋

TOP