0

嗨,我在我的项目组织方面寻求一些帮助和您的经验。由于这是我的第一个项目,我不知道我是否按我的方式组织它,这是一个面向各种网站的电子商务平台。我的项目目前是这样组织的:

.
├── 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

这就是它的工作原理,索引包含所有内容,当单击寄存器时使用开关盒重新加载页面并通过 GET 接收运行函数 register() 的指令,该函数会回显注册表单,然后它提交到 reg.php(树中的最后一个文件),它将注册插入数据库并重定向到 index.php。logout() 和 order() 发生的情况也是如此,它们重定向只是为了执行函数然后返回索引,这个页面只是为了使用一个函数并将用户重定向到索引页面。我什至认为在对重定向做同样的事情时,使用 switch case 执行不同的功能并重定向回索引,站点将只有索引、管理索引、重定向、css 和 func 文件......

当用户点击他们的名字时,页面会重新加载并使用 GET 它指示 switch case 加载 profile_display() 函数来回显配置文件信息......

管理部分也是如此,管理员用户会有在浏览不同页面的感觉,但实际上他们从未离开过索引。

我想知道的是这是否正确,或者我是否会遇到任何问题,或者我是否使用了不好的做法......我是否应该采用更传统的方式(许多文件)以及什么会更好保持传统或这个......如果服务器端因此而出现任何问题,以及您的意见。先感谢您。

4

1 回答 1

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;
}

然后可以创建一个“资产”文件夹,或者您可以在与系统文件夹相同的级别上随意调用它,并将所有 css/js/image 文件放在那里。

但我仍然建议您使用 MVC 框架。我个人正在使用 Codeigniter。但是有几个很好的框架,例如 Kohana。

于 2012-11-15T11:56:06.613 回答