您好我寻求一些帮助和您在项目组织方面的经验。由于这是我的第一个项目,我不知道我是否应该按照自己的意愿进行组织,这是一个针对不同网站的电子商务平台。我的项目目前以这种方式组织:
.
├── admin
│ └── index.php (redirects to system/admin/index.php)
├── conf.php (saves info about the server database etc...)
├── index.php
└── system
├── admin
│ ├── add_prd.php
│ └── index.php(this is the main administration page)
├── css
│ └── css.css
├── func.php(this is my functions library witch is included in every file that uses a function made by me)
├── img (this is where all pics go)
│ ├── img_artigos(this is where all pics *of the products* go)
│ │ ├── product1.png
│ │ └── ...
│ └── (system images go here)banner, all other images of the "template", etc...(probably i will make a new folder called system for that)
├── logout.php
├── order.php
└── reg.php
这就是它的工作方式,索引中包含了所有内容,在单击寄存器时使用switch case重新加载页面并通过GET接收运行函数寄存器()的指令,以回显注册表单,然后将其提交到reg.php(树中的最后一个文件),该注册表在数据库中插入注册并重定向到index.php。同样的情况是logout()和order()重定向只是为了执行函数然后返回索引,这些页面只是使用一个函数并将用户重定向到索引页面。我甚至想过对重定向执行相同的操作,使用switch case执行不同的功能并重定向回索引,该站点只有索引,管理索引,重定向,css和func文件......
当用户点击他们的名字时,页面重新加载并使用GET它指示开关案例加载profile_display()函数,该函数回显了个人资料信息......
同样适用于管理员部分,管理员用户会感觉到浏览不同的页面,但事实上他们从未离开过索引。
我想知道的是,如果这是正确的,或者我是否会遇到任何问题,或者我是否使用不良做法......如果我应该采用更传统的方式(许多文件)以及将要采取的措施为了更好地维护传统或这......并且如果由于这个和你的意见在服务器端会有任何问题。提前谢谢你。
答案 0 :(得分:1)
虽然我认为你的组织并不那么糟糕,但它是一个非常基本的结构而不是那么可扩展。如果你的项目越来越大,你就不会那么开心。
我建议您查看各种MVC框架,它们可以完成页面请求的所有路由,并帮助您保持项目的可维护性。它们还有助于拆分逻辑代码和布局。
如果你不想继续使用这种结构,你至少应该更改它的某些部分:
我可能会误解你,但你应该以同样的方式做到这一点。在我看来,不使用从switch语句调用的函数,同时直接重定向到reg.php。
switch($page) {
case "register":
//inlude file or call function
break;
case "register_submit":
//inlude file or call function
break;
case "logout":
//inlude file or call function
break;
case "order":
//inlude file or call function
break;
case "login":
//inlude file or call function
break;
}
然后可以创建一个“assets”文件夹,或者你可以在与系统文件夹相同的级别上调用它,并将所有的css / js / image文件放在那里。
但我仍然建议您使用MVC框架。 就我个人而言,我正在使用Codeigniter。但是有几个很好的框架,例如Kohana。