PHP 的项目结构

2022-08-30 13:23:44

我是PHP的新手,想知道php项目的目录结构。我有Java的经验,在Java中,我们有src包含java源文件,WEB-INF包含lib和jsp页面。我们在PHP中是否有任何类似的标准目录结构?此外,我们在php中也有分层,就像我们在java中有层一样(例如Web,Service,DAO层)

我浏览了几个链接。但每个人都给出了不同的答案。

不确定我们是否可以比较这两种语言。我只想坚持一些标准。

提前致谢。


答案 1

不。PHP是你用它做的。它可以是非常简单的平面文件,也可以是您想要的任何文件。

话虽如此,有一些商定的编码标准,但没有“执行”所述标准。它们被称为PSR(PHP标准推荐)。这里有一个背景:http://net.tutsplus.com/tutorials/php/psr-huh/
你可以在这里逐一查看标准:http://www.php-fig.org/psr/

大多数主要框架都遵循这些标准,如果您要使用一个标准,则可能更容易遵循流程。

同样,每个框架,项目,插件,程序等都有不同的布局和不同的项目结构。常见的结构是这样的:

-framework_dir
-public_html
    -js
    -img
    -css
    -index.php
    -protected/private
        -controllers
        -models
        -views
        -etc

然后,他们使用该文件阻止对受保护目录的访问。同样,这只是我在几个框架中看到的常见表示。如果你正在做一个个人项目,只需使用一些你觉得舒服的东西。每个框架都会给你一个不同的库或方法来访问数据。没有“层”,但同样,每个框架都有处理不同区域(电子邮件,数据库,缓存,http,日志等)的对象。因为有几十个流行的,所以由你来找到适合你的哲学或项目的东西。观看5分钟的博客视频中的一些,看看有什么jives,然后给它一个测试运行几天。如果您不喜欢它,请切换到另一个。.htaccess


答案 2

随着Composer的发明,人们现在有一个中心位置来注册他们的项目供全世界消费,其他人现在可以查看该代码库并看到相似之处。

结果是这样的:https://github.com/php-pds/skeleton

总之:

如果包具有 那么它必须被命名
命令行可执行文件 箱/
配置文件 配置/
文档文件 文档/
网络服务器文件 公共/
其他资源文件 资源/
PHP 源代码 来源/
测试代码 测试/

本标准没有就以下或 下方必须存在哪些目录提出任何进一步的建议。srcpublic

在任何这些目录中组织PHP源文件的任务仍然取决于您,但是本文中概述了我同意的建议:要么按类型(控制器,实体,服务)排序,要么按功能排序(用户,登录名,购物车,目录,文章,评论) - 后者将属于一个功能的所有代码保留在目录(或几个子目录)中, 这通常似乎是更好的文件组织。

在按类型进行组织时,您会发现自己经常在目录之间跳转,并且您也无法很好地了解代码的内容 - 您总是有“控制器”,但您很少拥有“StampCollection”。


推荐