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/cn.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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP