PHP 设计模式

2024-05-04

好的,我想首先让您注意到我一直在寻找“php mvc 设计模式”,所以我还没有真正找到我想要的东西;现在,在写我的问题时,我找不到我要问的任何相关且具体的问题。但我知道我可能是错的,无论如何考虑这个问题和一个可能有用的问题包。

Question

  1. 我想知道我们应该如何考虑设计模式。我的意思是:它们是什么?它们只是帮助我们设计一致的应用程序的二进制文件吗?他们就这么习惯了吗?为什么?
  2. 我在哪里可以找到有关网络上每种设计模式的列表?或者至少 5-10 个最常用的设计模式?
  3. Phpbb、Wordpress 或 Joomla(我很了解)是否使用设计模式?如果是,是哪一个?
  4. 我用谷歌搜索MCV PHP找到了大约 3 篇意大利语文章,阅读了排名第一的大约 5 页,但我几乎什么都不懂。它们是相互矛盾的,在我看来令人困惑。我确实明白将业务登录、脚本和视图分开是有用的(?),但我没有得到任何其他东西。我可能很蠢或者什么的,但我在哪里可以找到一个好的和official(表示由Gang of Four或者真正知道他在说什么的人)与 php 相关的 mvc 教程或文档?
  5. 是否有关于设计模式的简单示例以及它们如何比(正常)写作风格更好?有关于 mvc 或其他设计模式的简单示例吗?例如用设计模式编写的简单博客?

Tips

我首先更喜欢免费的解决方案。我不喜欢框架,所以请不要引用它们,即使(我知道)它们有 mvc 和其他有效的设计模式和优点。我还是不喜欢他们。谢谢

Notice

明天之后我会选择我接受的答案,所以请花点时间回答。


这些是什么?

设计模式是针对常见问题的与语言无关的蓝图解决方案。它们不是可下载的代码或现成的实现,而是您可以实现/转化为工作解决方案的理论方法。

设计模式还使得了解模式的开发人员之间的沟通更加容易,因为当开发人员 A 说:这是一个工厂时,开发人员 B 就会知道这意味着什么。

我在哪里可以找到有关网络上每种设计模式的列表?或者至少 5-10 个最常用的设计模式?

  • GOF 模式以及各种语言的示例 http://sourcemaking.com/design_patterns
  • 福勒的 POEAA http://martinfowler.com/eaaCatalog/index.html
  • StackOverflow 有很多结果 https://stackoverflow.com/search?q=design+patterns+php
  • 另外五种 PHP 设计模式 http://www.ibm.com/developerworks/opensource/library/os-php-designpatterns/index.html?ca=drs-tp1308
  • PHP 中的设计模式(附示例) http://designpatternsphp.readthedocs.io

还有一本值得推荐的书,名为《PHP Design Patterns》(仅限德语​​),您可以在以下位置下载该书的代码示例:http://www.phpdesignpatterns.de/auflage-2/#beispiele http://www.phpdesignpatterns.de/auflage-2/#beispiele

phpbb、wordpress 或 joomla(我很了解)是否使用设计模式?如果是,那么是哪一个?

可能吧,但是列出应用程序使用的每一个模式是毫无意义的。有些图案很小,有些则比较复杂。你使用它们不是为了使用它们,而是为了解决问题。

让我强调一点:你不是为了使用它们而使用它们。它们不是某种地位的象征。你不想积累它们。您甚至不必按照书本来实施它们。在适当的情况下使用它们来解决应用程序中的具体问题所需的每种变体。

我在 google 上搜索了 MCV PHP,找到了大约 3 篇意大利语文章,并阅读了排名第一的页面中的大约 5 篇,但我几乎什么都不懂。它们是相互矛盾的,在我看来令人困惑。我确实明白将业务登录、脚本和视图分开是有用的(?),但我什么也没得到。

MVC 不是 GOF 模式。它被列在 POEAA 中,但它的历史要早得多。您通常在网络上看到的 MVC 与“经典”MVC 无关,因为视图和其他两者之间存在互联网。

基本上对MVC了解的不多。这是非常简单的模式。这个想法是将 UI 分为三个不同的角色。该模型是您的所有业务逻辑。您的控制器处理来自视图的任何请求并委托给模型。您的视图显示模型。您应该能够更换控制器和视图,而无需触摸您的模型。

是否有关于设计模式的简单示例以及它们如何比(正常)写作风格更好?

很多。请参阅上面的链接了解一些示例。如果他们还不够清楚,请查看 StackOverflow 搜索他们的名字。

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

PHP 设计模式 的相关文章

  • 如何编写在正文中包含锚标记的 Zend Framework URL?

    使用 Zend Framework 中设置的标准 MVC 我希望能够显示始终具有锚点的页面 现在我只是在 phtml 文件中添加一个带有 anchor 的无意义参数
  • 使用 DOJO 自动完成文本框

    我正在寻找一种使用 DOJO 进行文本框自动建议的简单方法 我将查询的数据库表 使用 PHP 脚本 以 JSON 形式返回 有超过 100 000 条记录 因此这确实不应该采用 FilteringSelect 或 ComboBox 的形式
  • PHP文件上传

    如果我想在文件名转到服务器的永久位置 而不是临时位置 之前更改文件名 我该如何执行此操作 代码如下
  • 如何在 Zend Framework 中处理移动设备?

    我接手了一个噩梦般的项目 我正在迁移一个写得很差的站点 并慢慢地将其迁移到 Zend Framework 应用程序中 不幸的是 我没有时间做补救工作 使这变得可以忍受 也许是一个或两个模型 我现在被告知该网站很快就会有移动版本 建议是克隆旧
  • PHPUnit\Framework\TestCase 和 Tests\TestCase 有什么区别?

    我注意到在示例测试中 这两个类是内置的 功能测试 gt use Tests TestCase 单元测试 gt PHPUnit Framework TestCase 两者有什么区别 在什么情况下您会使用其中一种 PHPUnit Framewo
  • 来自本地 XML 的模拟 SoapClient 响应

    我想用文件中的 XML 来模拟 SoapClient 的响应 我如何创建一个 stdClass 对象 就像 SoapClient 从文件返回一样 客户端已经包装了 SoapClient 因此可以轻松模拟响应 我的模拟是这样的 soapCli
  • Laravel 5.4 升级 - 违反完整性约束 - 列不能为空

    奇怪的是 所有这些都在 5 2 中工作 但我不知道可以改变什么来实现这一点 下面是错误和正在插入的数组 SQLSTATE 23000 Integrity constraint violation 1048 Column gender can
  • PHP 基本身份验证 file_get_contents() [重复]

    这个问题在这里已经有答案了 我需要从网站解析一些 XML 数据 XML 数据是原始格式 但在我需要进行身份验证之前 基于基本网络服务器的身份验证 使用用户名和密码 I tried homepage file get contents htt
  • 如何在 Smarty 中打印 json

    我从 api 获取 json 如何使用 Smarty 打印 json Json格式 first name jinu last name mk loginid email protected cdn cgi l email protectio
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • MonoState、Singleton 或派生形式:CRUD 应用程序的最佳方法?

    我有一个相当大的 CRUD WinForm 应用程序 其中有许多对象 人员 注册 计划 案例注释等 该应用程序由 30 多种表单组成 UI 逻辑上被分解 会员 注册 计划 案例说明等 我正在尝试弄清楚如何创建我的人物对象搜索后搜索表格并将对
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN
  • 为什么抽象类应该实现抽象基类的抽象方法?

    在下面的示例中 该类Derived实现抽象方法method从课堂上Main 但我想不出在抽象中填写方法体的理由Derived类的实现 当然 我应该只在实际类中实现抽象方法 那么我怎样才能避免这样做呢 我还可以做些什么 abstract cl
  • 使用 fopen() 包装器创建 ZIP 文件

    如何使用以下命令创建 ZIP 文件fopen 包装器 http es php net manual en wrappers compression php 这显然是not道路
  • PHP 中的多个插入查询[重复]

    这个问题在这里已经有答案了 我正在尝试创建一个 php html 表单 它将结果插入到狗展数据库中 问题是 无论我做什么 我都会收到此错误 查询失败 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在 INSE
  • 合并 url 中的 2 个输入值

    我有这样的形式
  • PDO语法错误

    我在一个项目中使用 PDO 但提交时出现语法错误 这是我的代码
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 使用“INSERT ... ON DUPLICATE KEY UPDATE”插入多条记录

    我的表结构 table marks 我的目标 我想用条件插入或更新多条记录 我目前正在通过此查询进行检查 第一步 SELECT FROM marks WHERE student 115 AND param 1 第二步 if records
  • 如何在 PHP 中从字符串类名实例化? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 如何创建返回方法名称的新实例 不幸的是我收到这个错误 错误 类名必须是有效的对象或字符串 这是我的代码 class Foo public f

随机推荐