TP5.1自定义命名空间使用命令行添加文件(修改源码)

author:咔咔

wechat:fangkangfk

 

在上篇文章中,我们做了自定义命名空间,但是使用命令行创建文件的时候,会发现,会一直创建在app的命名空间下,下来我们处理一下这个问题https://blog.csdn.net/fangkang7/article/details/83476420

 

 

 

下面这个文件是命令行创建文件的类

我们重点看一下这个方法并打印一下这个参数

我们就可以看到这俩个参数一个是我们需要创建的命名空间,一个是文件创建的路径

 

这个classname一直都是在app下面的,我们现在就去看一下这个妖怪 

 我们就会发现这个getClassName是在控制着创建的命名空间,我们可以看看这个方法来修改一下源码

 

在来测试一下

发现命名空间对了,但是文件路径前面还是有个app

 既然我们在classname这个方法解决了命名空间的问题,我们就在顺着pathname这个方法看看生成的文件路径

这里边是修改源码后的代码。

再来测试一下

很nice成功了

 

 

 

续集:在后续的测试发现这个时候在data的命名空间创建文件都是可以的,但是在app的命名空间下创建东西都会出现在根目录

 

 

这个时候我们在回头看一下源码,打印日志发现问题,最终的源码就是下面的这个

 

我们在进行测试一下,一切ok

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在TP5添加自定义的HTML文件,可以在public目录下创建一个新的文件夹,将HTML文件放到这个新文件夹中。然后可以通过访问这个新文件夹来访问HTML文件。 要扩展TP5自定义标签,可以通过扩展系统内置的标签库来实现。首先需要在config目录下的template.php中配置自定义标签库的路径,例如: ```php 'taglib_pre_load' => 'app\common\taglib\MyTag', ``` 然后在app目录下创建一个common目录,在common目录下创建一个taglib目录,最后在taglib目录下创建一个MyTag.php文件,这个文件就是自定义标签库的实现文件。在MyTag.php文件中可以定义一些自定义的标签,例如: ```php <?php namespace app\common\taglib; use think\template\TagLib; class MyTag extends TagLib { protected $tags = [ 'hello' => ['attr' => 'name', 'close' => 0], 'world' => ['attr' => 'count', 'close' => 1], ]; public function tagHello($tag) { $name = $tag['name']; return "Hello, {$name}!"; } public function tagWorld($tag, $content) { $count = $tag['count']; return "World! " . str_repeat($content, $count); } } ``` 在模板中使用自定义标签时,需要先引入自定义标签库,例如: ```html {use app\common\taglib\MyTag} ``` 然后就可以使用自定义标签了,例如: ```html <mytag:hello name="John" /> <mytag:world count="3">This is a test.</mytag:world> ``` 模块标签的使用自定义标签类似,只需要在对应的模块下创建taglib目录和对应的标签库文件即可。在模板中使用时,需要使用模块名作为标签库的前缀,例如: ```html {use app\index\taglib\MyTag} <mytag:hello name="John" /> <mytag:world count="3">This is a test.</mytag:world> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咔咔-

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值