PHP项目文件组织

时间:2012-11-15 10:47:02

标签: php project-organization

您好我寻求一些帮助和您在项目组织方面的经验。由于这是我的第一个项目,我不知道我是否应该按照自己的意愿进行组织,这是一个针对不同网站的电子商务平台。我的项目目前以这种方式组织:

.
├── 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()函数,该函数回显了个人资料信息......

同样适用于管理员部分,管理员用户会感觉到浏览不同的页面,但事实上他们从未离开过索引。

我想知道的是,如果这是正确的,或者我是否会遇到任何问题,或者我是否使用不良做法......如果我应该采用更传统的方式(许多文件)以及将要采取的措施为了更好地维护传统或这......并且如果由于这个和你的意见在服务器端会有任何问题。提前谢谢你。

1 个答案:

答案 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。

相关问题