如何构建我的 PHP 项目?

2024-07-04

我即将开始另一个大型 PHP 项目。这次,我打算让项目文件夹变得整洁!所以我有几个关于保持我的项目干净和干燥的问题:

  • 如何区分 PHP 源文件和浏览器应访问的 PHP 文件?换句话说,我如何清楚哪些 PHP 文件提供输出,哪些提供函数或类定义?

  • 我计划将我的 PHP 函数分成静态类,按主题分隔,例如 database::create() 或 editor::write()。您对此有何看法?

  • 我计划创建一个 PHP 文件“core.php”,该文件将包含在项目中每个 PHP 文件的顶部。该文件将处理身份验证并包含基本功能。想法?

  • 该项目将主要基于 Ajax。这就引出了一个问题:我的 PHP 函数应该是实际的 PHP 函数,还是应该是接受 GET 或 POST 输入的单独 PHP 文件?我的计划正在做both。我为 PHP 源文件创建一个文件夹,为 PHP“ajax”文件(或其他文件)创建一个文件夹,并在后一个文件夹中填充它们将执行的函数的文件名。然后,PHP 文件将仅包含对函数的调用并为 Ajax 写入输出。想法?

在我开始这个项目之前,任何其他评论或提示都会很棒!


Edit

我可能没有强调这个 Web 应用程序将多么依赖 Ajax。 Codeigniter 似乎是创建网页或简单 Web 应用程序(例如博客)的绝佳工具。我的应用程序会有点不同。与 uTorrent WebUI 非常相似,我的 Web 应用程序将在一个页面上保持静态,并由 Ajax 执行所有幕后操作。对于这样的项目使用Codeigniter似乎有点别扭。

是否有针对此类应用程序创建的不同架构?


您是否考虑过使用 Codeigniter 这样的框架?您是否熟悉某种设计模式,例如 MVC?这两者都有助于决定项目中文件的位置和逻辑的分离。

编辑:Codeigniter 使用 MVC,这对于 Web 编程来说是一个很好的模式。查看他们提供的这两个视频以获取教程。总共只有大约 30 分钟,但绝对充满了丰富的知识,既可以了解其框架的工作方式,也可以了解其文件夹结构所提供的见解。

EDIT2: http://codeigniter.com/tutorials http://codeigniter.com/tutorials

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何构建我的 PHP 项目? 的相关文章

  • php curl 获取 html 和 js 渲染

    php curl 只获取html页面的源代码 不执行js脚本 我需要我的网站获取已执行所有 JavaScript 的源代码 我使用ajax 但无法在页面中添加更多js 因为当我加载另一个页面时脚本会保留 我找到了 SpiderMonkey
  • 使用 javascript 分割图像

    如何使用 javascript 获取单个图像的一部分并将其存储在数组中 然后在 html5 画布上随机显示 您可以使用drawImage 方法的剪切参数并将剪切的图像绘制到动态创建的画布上 一个例子可以是 function getClipp
  • 对多个表进行排序 MYSQL DateStamp

    我正在构建一个简单的买卖网站 并希望在第一页上列出最新的广告 在我的数据库中有 4 个表 USERS CARS ELECTRONICS and COMPUTERS 三个项目表中的每一个 CARS ELECTRONICS and COMPUT
  • Angular ui - 选项卡控制器执行多次

    当我单击一个选项卡时 相应的控制器会执行 4 次 为什么 E g DetailsPersonController s init函数执行了4次 仅应在加载选项卡视图后执行 HTML 标签
  • 教义:如何从侦听器(preDqlSelect)内的选择查询中删除部分 where 子句?

    我的侦听器是行为的一部分 该行为应该删除任何调用的 select 查询的 where 子句中的所有 is published 检查 在子句中添加一个部分确实很容易 但如何删除一个部分呢 有一些功能 例如Doctrine Query gt r
  • PHP 音节检测 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想找到一种方法 能够用 PHP 将单词拆分为音节 例如 单词 nevermore 运行经过 detector syllables 将返回
  • 如何为cordova应用程序创建一个单独的目录并在其中存储数据?

    我想为我的 cordova 项目创建一个特定的目录 我不知道该怎么办 我提到了这样的链接 如何将文件移动到应用程序目录cordova https stackoverflow com questions 27765007 how to mov
  • Node-Webkit在不同窗口启动功能

    我的 node webkit 应用程序由一个控制窗口和一个演示窗口组成 控制窗口收集数据并最终通过window open功能 演示文稿窗口现在可以访问global多变的 现在我想通过创建 SVG 元素等来呈现该信息的图形表示 我已经有一个
  • 是否可以从 JavaScript 注入的内联样式中减去一个数字?

    我在 HTML 中添加了内联样式 例如style left 10px 我可以添加 减去该数字吗 我想创建一个可以删除的规则8px从该数字开始 无论该数字是多少 我尝试使用丑陋的 importanthack 来覆盖它 但是当初始值改变时这没有
  • redux fetch body 不能在无 cors 模式下使用

    我有一个调用函数的操作 dispatch Api url my url method POST data data 这里我将数组作为数据传递 import fetch from isomorphic fetch export default
  • 如何安装并开始使用 Vuetify 和 Vue.js 3

    我在哪里可以找到新的 Vuetify 版本与 Vue js 3 兼容的文档以及如何使用 Vue cli 安装和设置它 在 vue 2 中我们这样做 vue create project name then vue add vuetify 我
  • Webpack - devtool:CSS 的源映射和 JS 的 eval-source-map?

    如果我使用 devtool source map 它与 CSS 配合得很好 但是 我的 JavaScript 变量名并不有趣 所以 如果我使用 devtool eval source maps 生活很美好 调试 JS 但我的 CSS 然后指
  • 处理 jQuery 中的所有事件类型

    在使用 jQuery 的应用程序中 我希望每次触发任何类型的事件 包括自定义事件 时都记录到控制台 无论如何 是否可以在不修改 jQuery 源代码并且不绑定到每个可能的事件类型的长列表的情况下执行此操作 var oldTrigger jQ
  • 如何检测安装的Chrome版本?

    我正在开发一个 Chrome 扩展程序 我想知道是否有一种方法可以检测用户正在使用哪个版本的 Chrome 获取 Chrome 的主要版本作为整数 function getChromeVersion var raw navigator us
  • 解析错误:语法错误,意外的 T_SL PHP heredoc

    我不断收到以下错误 解析错误 语法错误 home a4999406 public html willingLog html 第 70 行出现意外的 T SL 以下代码 第一行是第 70 行 echo lt lt
  • 使用加载器 ts-node/esm.js 运行节点需要导入具有 .js 扩展名

    我正在尝试将我的 package json 设置为模块来运行节点 14 type module 如果我在打字稿文件上运行此命令 node loader ts node esm mjs experimental top level await
  • scrollIntoView 滚动得太远

    我有一个页面 其中包含从数据库动态生成的带有 div 的表行的滚动条 每个表格行的作用就像一个链接 有点像您在视频播放器旁边的 YouTube 播放列表中看到的那样 当用户访问该页面时 他们所在的选项应该位于滚动 div 的顶部 此功能正在
  • JavaScript。如果数组包含重复数字,Array .sort() 方法会为 Chrome 和 Firefox 返回不同的结果

    我有包含随机数的数组 当我试图通过排序这个数组时 sort 方法 如果数组包含重复的数字 结果会不同 下面的代码在 Chrome 和 Firefox 中的工作方式有所不同 1 2 3 4 5 6 7 8 9 2 15 3 4 5 1 2 3
  • 何时何地打开数据库连接

    我正在努力实现发现的 mysql 类的使用here http www ricocheting com scripts php mysql wrapper php在现有脚本中 该脚本几乎总是需要与数据库交互 即使有时不需要 在这种情况下 最佳
  • 如何构建我的 PHP 项目?

    我即将开始另一个大型 PHP 项目 这次 我打算让项目文件夹变得整洁 所以我有几个关于保持我的项目干净和干燥的问题 如何区分 PHP 源文件和浏览器应访问的 PHP 文件 换句话说 我如何清楚哪些 PHP 文件提供输出 哪些提供函数或类定义

随机推荐

  • Xamarin Form - 如何更改 ResourceDictionary 中的 TabbedPage 标题字体大小

    我创建了一个TabbedPage有四个ContentPages as the TabbedPage Children with Title The TitleiOS应用程序中呈现的内容非常完美并且能够阅读 然而 在 Android 中似乎T
  • R中逻辑回归的分类表

    我有一个由二分因变量组成的数据集 Y 和 12 个自变量 X1 to X12 存储在 csv 文件中 这是数据的前 5 行 Y X1 X2 X3 X4 X5 X6 X7 X8 X9 X10 X11 X12 0 9 3 86 111 126
  • 如何在cmd / powershell中运行Nuget Package Manager Host

    我目前正在使用更新包Visual Studio 2017 Nuget 包管理器控制台中的命令 我需要从命令提示符使用它 eg nuget Update Package Newtonsoft Json Visual Studio 的包管理器控
  • DynamoDB 中的 UUID 数据类型

    根据规范 UUID 为 128 位或 16 字节 十六进制表示形式为 36 个字符 包括连字符 我正在 DynamoDB 上构建一个新表 并且必须决定计划用 UUID 填充的哈希键的类型 我应该使用这些 UUID 的字符串或二进制哈希键创建
  • 以全屏模式启动 Microsoft Edge

    我正在修理几台用作数字标牌的计算机 因此 我需要一个脚本来在启动时全屏启动 Microsoft Edge 我在设置中设置为默认网站 但我不知道如何全屏启动应用程序 有什么想法吗 通过更改发布的脚本https superuser com qu
  • 检测 gzip 编码以手动解压缩响应,但缺少“Content-Encoding”标头

    我在用net http在 Go 中创建一个库HTTP GET要求 在响应中 我收到 12 个标头 但是当我通过邮递员运行完全相同的查询时 我得到 16 个标头 其中缺少的一项是 内容编码 我明白这一定是一个CORS https develo
  • 在 EF core 中启用迁移吗?

    我正在开始使用 EF Core 2 0 我有一个针对 NET 4 6 1 的控制台应用程序 我有一个非常简单的模型类 以及这个上下文 public class ContextCore DbContext protected override
  • WEBP图像回退

    我在互联网上搜索了很多 找不到可以完整教授的正确示例或完整教程 所以请大家给我推荐一些好的例子 我已经在很多网站上尝试过 WEBP 代码 例如与现代化工具一起使用 检查浏览器支持或使用背景图像 有一篇关于 Stucox 的文章 您可以在其中
  • Phantomjs 可以工作,但速度很慢

    我正在尝试使用 PhantomJS 截取网页的屏幕截图 具体来说 我正在使用捕获的示例espn com from this http skookum com blog dynamic screenshots on the server wi
  • iOS 7 AVPlayer AVPlayerItem 持续时间在 iOS 7 中不正确

    我的应用程序中有以下代码 NSURL url NSURL fileURLWithPath self DocDir stringByAppendingPathComponent self FileName isDirectory NO sel
  • 构建失败:程序类型已存在:com.facebook.ads.Ad

    我尝试在 Android Studio 中构建一个模块 它似乎可以在设备上运行 但是当我尝试构建 APK 时 出现错误 Program type already present com facebook ads Ad 这是完整的日志 org
  • 界面生成器中 UIView 的边框颜色不起作用?

    我正在尝试通过 IB 设置视图的图层属性 除了边框的颜色之外 一切正常 属性layer borderColor 我记得一年前遇到过这个问题 最终我以编程方式解决了这个问题 而且 我仍然可以以编程方式执行此操作 但我很好奇为什么layer b
  • TypeScript .d.ts 语法 - 导出和声明

    我需要帮助尝试了解创建 d ts 文件的正确方法 让我困惑的是有些人使用这种语法 lib a d ts namespace My Foo Bar interface IFoo interface IBar vs lib b d ts dec
  • laravel 5 vue.js csrf 令牌

    我已经花了一段时间让这个 csrf 令牌与 vue js 示例一起使用 但它一直说我没有令牌 我尝试过各种变化 底部 不是头部 而是身体末端之前 html div section conten div
  • 版本升级后异常

    使用 Optaplanner v7 11 0 Final 的项目上出现分数持久性问题 我升级到最新版本 v7 25 0 Final 但出现以下异常 The externalObject Etat super DbObject id 11 l
  • 分组依据,在 pandas 中

    select df id count distinct airports as num from df group by df id having count distinct airports gt 3 我正在尝试在 Python pan
  • 在 javascript/jquery 中从 JSON 中删除元素

    我在 javascript 中从 JSON 对象删除数据时遇到问题 我正在动态创建此 JSON 并且删除也将动态进行 下面是我的 JSON 和我所处的情况 brands 51 2046 53 67 64 现在 我必须从中删除 53 我正在使
  • 如何获取 PostgreSQL 中字符串中正则表达式匹配的位置?

    我有一个包含书名的表 我想选择标题与正则表达式匹配的书籍 并按标题中正则表达式匹配的位置对结果进行排序 单字搜索很容易 例如 TABLE book id title 1 The Sun 2 The Dead Sun 3 Sun Kissed
  • 检查Column中是否存在Cell值,然后获取NEXT Cell的值

    检查列中是否存在单元格值后 我需要获取匹配单元格旁边的单元格的值 例如 我检查中的值是否cell A1存在于column B 并假设它匹配B5 那么我想要的值是cell C5 为了解决前半个问题 我这样做了 IF ISERROR MATCH
  • 如何构建我的 PHP 项目?

    我即将开始另一个大型 PHP 项目 这次 我打算让项目文件夹变得整洁 所以我有几个关于保持我的项目干净和干燥的问题 如何区分 PHP 源文件和浏览器应访问的 PHP 文件 换句话说 我如何清楚哪些 PHP 文件提供输出 哪些提供函数或类定义