理解thinkphp的命名空间

    命名空间是thinkphp3.2中最新引入的模块。最开始在学习的时候也没有在意这个模块,相关的代码也只是按照demo复制粘贴的。

    在后续的网站开发的时候想到应该想Java开发时候那样写一些工具类来简化开发,这时候才发现一个问题:在哪定义工具类,怎么导入,怎么使用?

    想要解决上面的问题,就必须弄清楚tp框架的命名空间了。

    thinkphp是一个单一入口的框架,也就是说任何URL在访问的时候都会先经过index.php ,这对于理解thinkphp的命名空间十分关键。这也就是说tp框架的任何路径都是相对于index.php的,namespace也是如此。

   在我看来,namespace其实就是代码所在的文件相对于index.php文件的路径,和Java中的package相同。

    

 上面是默认IndexController代码的首行。namespace是Home\Controller 。简单理解就是这个文件的文字相对于index.php为./Application/Home/Controller。

    如果想要自定义工具类,那么只需要弄清处文件相对于index.php的位置即可。

    接下来就通过定义一个StringTools的工具类为例。

    首先我在Application目录下定义了一个Utils文件夹,来放置类似的工具类。

 

 接下来在Utils包里面新建了一个class.php文件,来填写StringTools代码



 namespace表示该文件所在的位置为index.php/Application/Utils.

接下来只需要写上自己常用的String函数就行了。

至于StringTools工具类的调用,遵循相同的法则。



 这样我们就实例化了一个FileTools对象,可以直接调用FileTools里面的方法了。

最后在说一句,如果Tools里面的方法不多的话,其实可以将函数直接定义在Common文件夹下common.php文件,Controller里面可以直接调用。

猜你喜欢

转载自729660130.iteye.com/blog/2280778