TP3.2.3现在好像不支持Controller任意级别分层吧?
比如我把Home\Controller\UserAdminController.class.php移到Home\Controller\User\UserAdminController.class.php,
命名空间由:namespace Home\Controller 改为:namespace Home\Controller\User,
然后通过URL:http://localhost:8803/index.php/Home/User/UserAdmin/admin_list.html,这样是访问不了的,原来http://localhost:8803/index.php/Home/UserAdmin/admin_list.html可以访问。
没深入研究代码,不过感觉分类目录虽然在开发上方便了,但是URL组织上好像有点欠妥。
其实想实现的是模块的插件化功能,Addon功能比较弱,项目文件的目录分类功能,其实就是Addon的变体,让Addon支持完整的MVC,也就是Addon里面包含完整的MVC目录结构,如Addon\User\Controller,Addon\User\Model,Addon\User\View,Addon\User\Conf等,Addon\User\Common,Addon\User\Taglib\等。
这样,比如有人做了个博客类的User插件,那只要把源码放到Addon\BlogUser就可以了,里面已经包含完整MVC结构了,有人做了个商城类的User插件,那只要放到Addon\ShopUser目录就可以了,这样就可以实现应用市场的功能,用户从未来的Tp应用市场下载插件,自动解压到Addon目录,就可以使用这个插件功能了,这样通过插件堆积,就能快速搭建一个由不同插件组成的网站。
OT的插件规范有看过,比较高级吧,基于Addon的插件化,对开发者也是很有用的。如果可行,建议TP5能自带TP专属的插件化开发规范,最好能有TP5的插件市场平台。
====================================
另外对TP5有个建议,目录结构中,Conf、Common目录还是要保留,特殊情况下,Conf可能有很多状态配置文件,如果都放在\Application目录下,没有目录包含,很不好找,因为配置文件的命名又没有任何规律。
====================================
以上表述可能比较模糊,如果方便,可参观自己的项目,就是基于Addon改造的,Addon里面每个模块都具有完整的MVC功能:http://git.oschina.net/sutroon/xwamp_php_2_0/tree/master/Application/XWAM/Addon?dir=1&filepath=Application%2FXWAM%2FAddon&oid=e7d7fef7cd3b3d925c01af2f039854d4ceecafa1&sha=e549ee81697132ee1b8bb1fec8d287c932601519
========================================
一如既往支持TP,感谢老大为国人奉献了这么好的框架!