man*_*pig 7 php model-view-controller module directory-structure
我目前正在开发自己的PHP框架,我需要一些帮助来确定我是否正朝着正确的方向前进......
该框架既可供我自己使用,也可以进一步提升我的PHP技能.我遇到了很多问题,通过克服它们,我学到了很多东西,并且喜欢能够从零开始创造一些东西,所以我宁愿看不到像"Just use Zend"这样的答案!;)
我已经阅读了Stack Overflow和其他一些网站上的一些文章,但是我无法得到我需要的正确答案,所以希望有人可以给我一些有用的建议!
我已经尝试了一些不同的解决方案,但我最终让自己感到困惑,我不确定现在要走哪条路!我不能完全理解这一切......
'理论'框架结构
- .htaccess
- index.php
- private/
- app/
- bootstrap.php
- modules/
- default/
- controllers/
- pages.php
- index.php
- models/
- views/
- admin/
- controllers/
- models/
- views/
- config/
- config.php
- autoloader.php
- lib/
- Some_Library
- Class1
- class1.php
- Class2
- class2.php
- public/
- css
- images
- scripts
Run Code Online (Sandbox Code Playgroud)
细节
无论如何,对我的问题......
我认为将管理部分与网站的其他部分分开会更好,但这就是我陷入困境的地方.我已经使上述结构与它一起工作,但我不确定这是否是最有效的方法.
如果请求site.com/videos/view/1/来到我的网站..
模块:默认 控制器:视频 操作:查看 参数:数组('1')
如果请求site.com/admin/pages/view/1/来到我的网站..
模块:管理员 控制器:页面 操作:查看 参数:数组('1')
这是正确的方法吗?或者我是否过度复杂并做了一些不值得做的事情?
我的管理部分应该有一个完全独立的应用程序框架吗?我是否甚至需要将管理部分的MVC与其余部分分开?
很抱歉这个大问题,只是想给你尽可能多的信息!随意回答你可以选择哪一部分= P.
管理路由的一种解决方案是 CakePHP 所做的,首先定义管理字符串的配置,然后在控制器中使用具有特定命名转换的操作
//Configuration ============================
Configure::write("admin_routing" , true );
Configure::write("admin_prefix" , "admin" );
//Controller ===============================
class MyController extends AppController{
function index(){
//Will map to /mycontroller/
}
function admin_index(){
//Will map to /admin/mycontroller/
}
}
Run Code Online (Sandbox Code Playgroud)
您可以通过使用路由系统来概括这一点,只需看看您最喜欢的框架是如何做到的
另一个注意事项
希望这可以帮助