【问题标题】:PHP Project files organizationPHP 项目文件组织
【发布时间】:2012-11-15 10:47:02
【问题描述】:

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

.
├── 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() 函数来回显配置文件信息......

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

我想知道的是这是否正确,或者我是否会遇到任何问题,或者我是否使用了不良做法......我是否应该采用更传统的方式(许多文件)以及发生了什么为了更好地维护传统或这个......以及服务器端是否会因此而出现任何问题,以及您的意见。提前谢谢你。

【问题讨论】:

    标签: php project-organization


    【解决方案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。

    【讨论】:

    • 感谢您的回答,我会考虑使用 Codeigniter,我担心我会在很多层面上犯错,毕竟,“还不错”可以解决这个问题 :)
    • 我只在确实需要时使用重定向,在注册的情况下,在开关情况下我有表单,然后在提交时提交到接收页面 reg.php通过 post 获取数据并调用 func.php 上的函数将数据插入数据库
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多