我们什么时候应该在 php Phalcon 中使用多模块结构(而不​​是简单结构)

2024-01-07

我们什么时候应该在 php Phalcon 中使用多模块结构(而不​​是简单结构)?

我发现了一些多模块骨架,例如:

https://github.com/ovr/phalcon-module-sculpture https://github.com/ovr/phalcon-module-skeleton,

https://github.com/phalcon/mvc/tree/master/multiple https://github.com/phalcon/mvc/tree/master/multiple.

但我不知道我应该在项目中使用这种多模块结构,而不是使用多个项目。 我可以想到的是:配置更复杂,文件夹结构更复杂,我的网址更长(/[模块]/[控制器]/[操作]),而且重要的是,性能会很低(加载的东西比更多) 。

不过,我认为它有一些有趣的地方(很多 ITer 都用过它)。有没有人可以告诉我优点、缺点和选择标准。

P/s:Zend2模块也有同样的问题!


如果您正在将单一用途的应用程序构建为不使用视图的 API,那么您应该使用单一模块结构。如果它是一个非常简单的 API,例如存储/日志记录,那么微型应用程序也可以。

如果您愿意构建更复杂的解决方案,多模块应用程序结构会很有用。例如,具有公共内容但具有管理面板的公共应用程序。这个可以很方便地编写多模块来将管理控制器/视图与那些公共控制器/视图分开。

我的习惯是使用多模块结构,因为大多数情况下我必须构建 CRM 应用程序及其 API 和公共可访问的内容部分(例如文档)。为了这个目的,创建这样的模块很方便:

  • frontend- 适用于每个人都可以访问的控制器
  • backend- 用于在身份验证和授权后可访问的控制器,例如管理事物
  • API- 用于 API 目的;)
  • common- 我宁愿不实现这一部分,但在一个项目中,我被迫在这里放置一些抽象控制器,这些控制器将在其他模块中扩展。

通过这种方式,您可以为每个模块保留单独的服务配置,从而避免切断您正在使用的模块的内容A,但不在模块上B。喜欢身份验证部分 - 对于backend,但没用frontend部分。或者数据库配置 - 前端的从站,后端的主站等。所以这对于大型项目来说可能也是一个性能明智的解决方案。

Update

有时“多项目”是一个选项,包括“多模块”项目;)这很大程度上取决于您想要实现的目标。例如。如果您将 API 拆开,在多个实例上扩展它可能会更容易,但首先您需要花费精力来配置单独的项目。

如果系统应该是单服务器实例或者每个实例都应该绝对独立于其他实例,那么单个多模块项目就足够了 - 比如说一个标准的 CMS、博客平台,甚至是简单的浏览器游戏或包括 API 的移动应用程序主页为了它。但是,如果您正在构建一整套应用程序,例如提供内容的内部 API、管理内容的 CRM 以及为其提供服务的几个网页,那么将它们保留为单独的项目将更易于以后管理。

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

我们什么时候应该在 php Phalcon 中使用多模块结构(而不​​是简单结构) 的相关文章

  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • 如何检查号码是否是巴基斯坦用户的手机号码而不是固定电话号码

    我所做的是从开头删除 92 或 0092 并使用以下代码检查它是否是巴基斯坦人的有效手机号码 if preg match 3 0 4 0 9 number 1 Pakistani mobile number else not a pakis
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • Laravel - 停止并发访问记录

    在 Laravel 中 有什么方法可以停止同时与同一条记录交互 例如 如果用户 A 正在编辑一条记录 那么我同时需要阻止用户 B 编辑同一条记录 注意 我在 Laravel 5 2 中使用 SESSION DRIVER file 目前大约有
  • 使用 PHP 对 ASP.NET 成员身份中的用户进行身份验证

    我在尝试使用 PHP 针对现有 ASP NET 成员资格数据库对用户进行身份验证时遇到一些问题 我在网上搜索过 发现现有的答案似乎对我不起作用 即 public static function Hash password salt deco
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • Magento补丁安装失败

    从以下位置下载并运行 Magento PHP 5 4 支持补丁 Magento CE v1 7 0 0 1 7 0 2 时http www magentocommerce com download http www magentocomme
  • php 如何统计文件夹中的文件数量?

    我想让用户能够在自己的文件夹中上传一些文件 图片 但只有当该文件夹包含的图片少于五张时才可能 如果已经有 5 张图片 脚本必须让用户知道他 她的文件夹已满 所以 我想知道php中是否有函数可以计算文件夹中的文件数量 或者 php 中有其他方
  • TOMCAT 6 中的 PHP - 异常

    我一直在努力融入PHP in APACHE TOMCAT 6依照指示second answer为了QUESTION https stackoverflow com questions 779246 run a php app using t
  • Laravel 广播:通知与事件

    我阅读了 laravel 文档Events and Notifications 似乎我们可以触发一个事件 并从该事件中触发 使用ShouldBroadcast接口 将其广播到我理解的 laravel echo 另一方面我们可以使用通知via
  • 使用日语“Enter”键进行搜索功能

    我在日语方面遇到了问题 我有一个允许用户搜索数据的表单 当用户输入要搜索的字符串并按 Enter 键时 搜索功能就会执行 我的代码是 formSearch input keyup function event var key event c
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • 如何用javascript正确读取php cookies

    考虑这个 php 和 javascript 代码 然后我在控制台中看到的是 utma 111872281 291759993 1444771465 1445374822 1445436904 4 utmz 111872281 1444771
  • 将数组拆分为特定数量的块

    我知道array chunk 允许将数组拆分为多个块 但块的数量根据元素的数量而变化 我需要的是始终将数组拆分为特定数量的数组 例如 4 个数组 以下代码将数组分为 3 个块 两个块各有 2 个元素 1 个块有 1 个元素 我想要的是将数组
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • php下拉菜单人口

    我正在尝试编写一个 php 脚本 该脚本将根据主下拉菜单的选择填充第二个下拉菜单 我想使用 jquery 来完成所有非页面刷新的事情 但我发现现有的所有东西都很难理解和修改 你知道有什么写得很好且易于理解的东西吗 或者可能是现有的教程 下面
  • mysqli bind_param 中的 NULL 是什么类型?

    我正在尝试将参数绑定到 INSERT INTO MySQLi 准备好的语句 如果该变量存在 否则插入 null 然后我知道 type variable i corresponding variable has type integer d
  • “pdo_mysql”已禁用,我无法启用它。我在 iMac 7.1 OSX 10.6.8 上安装了 MAMP v. 3.0.4

    pdo mysql 已禁用 我无法启用它 我在 iMac 7 1 OSX 10 6 8 上安装了 MAMP v 3 0 4 在我的 phpinfo 页面上 我可以看到唯一启用的 PDO 是 sqlite 如果我查看 php 5 5 10 扩

随机推荐

  • 我可以在 django 中将模型分成不同的文件吗

    目前我的所有模型都在 models py 中 变得非常混乱 我可以有单独的文件吗base models py这样我就把我不想碰的主要模型放在那里 视图的情况也是如此 并放入单独的文件夹中 而不是开发新的应用程序 是的 这是可行的 但它并不是
  • 在 DBIx-Class 中使用预取时如何仅选择特定列?

    我正在努力解决相当基本的 DBIx Class 预取用法 我想限制使用预取时从连接表返回的列 This my rs schema gt resultset CD gt search No searching restrictions thr
  • 关系还是指针?

    如果我有一个名为Article 我想添加一个Author列 这是类类型User 我应该使用关系还是指针 只能有一个Author 但是那个Author可以写很多文章 我假设是指针 但只是确定一下 Thanks 如果您假设一篇文章有 1 或 0
  • Rails 4.2 自动加载不是线程安全的

    我有以下模型 class User lt ActiveRecord Base def send message content MessagePoro new content deliver end def self send to all
  • GCC 和 MSVC 中是否存在“simdduction(:)”?

    simd pragma 可以与 icc 编译器一起使用来执行归约运算符 pragma simd pragma simd reduction acc pragma ivdep for int i 0 i lt N i acc x i msvc
  • 在 CPanel 上部署 Nuxt SSR

    我正在尝试将 nuxt 应用程序部署到 cpanel 共享主机 它在我的本地计算机上使用运行开发 构建和启动运行良好 但是 当我将文件移至 cpanel 时 我可以运行 npm dev 构建和启动 当我使用 npm run dev 时 生成
  • 在 Java 中,获取给定月份的所有周末日期

    我需要找到给定月份和给定年份的所有周末日期 例如 对于 01 月 2010 年 输出应为 2 3 9 10 16 17 23 24 30 31 所有周末日期 这是一个粗略版本 其中包含描述步骤的注释 create a Calendar fo
  • Matplotlib - 沿同一轴的不同刻度标签对齐

    我有一个包含很多子图的图形 这样轴的最后一个刻度标签就写在下一个轴的第一个刻度标签上 请参阅此处的示例 https i stack imgur com 7hprI jpg 由于我想在设置时保持子图之间的间距 因此我希望根据刻度进行不同的对齐
  • 如何使JQuery-AJAX请求同步

    如何使ajax请求同步 我有一份表格需要提交 但只有当用户输入正确的密码时才需要提交 这是表单代码
  • 如何 Groovy 化空检查?

    是否有更 Groovy 的方式来编写此 Groovy 代码 def myVar System getProperty props null null System getProperty props 逻辑是 If System getPro
  • 如何在特定浏览器选项卡/窗口/页面中打开链接/url?

    我的页面包含 target blank 的链接 url 列表 当我单击任何链接时 它会在新选项卡 窗口 页面中打开 可以说在窗口中W 没关系 但我想要的是 当我单击任何其他链接 url 来自列表 时 该链接应该在窗口 页面中打开W它已在上次
  • 为子级响应 Native FlatList onPress

    我正在尝试为嵌套在 React Native FlatList 中的图像连接新闻处理程序 我已经验证该函数是通过 props 传入的 通过直接在我的组件内部调用该函数 并且效果很好 下面是一个简化的测试用例 我还尝试在图像上设置 onPre
  • Python 相当于 java.util.SortedSet?

    有人知道 Python 是否有与 Java 的 SortedSet 接口等效的接口吗 这就是我正在寻找的 假设我有一个类型的对象foo 并且我知道如何比较两个类型的对象foo看看是否foo1是 大于 或 小于 foo2 我想要一种存储许多类
  • 如何获取“计算机语言基准测试游戏”(以前称为“语言大战”)的源代码?

    我和一名学生正在建立一个新的口译员家族 我们希望将其与现有的口译员进行比较 我们很乐意下载包含所有源代码的 tarball 或 zip 文件计算机语言基准测试游戏 https benchmarksgame team pages debian
  • 在 Haskell 中实现多态 λ 演算/系统 F 的 Church 编码

    我想实施该对的教会编码 https en wikipedia org wiki Church encoding Church pairsHaskell 中的多态 lambda 演算 第 77 页 第 8 3 3 节Peter Selinge
  • 前往所有城市所需的最短天数窗口

    这是我在编码挑战中遇到的一个有趣的问题 有k个城市 n天 旅行社将在第 n 天向您展示城市 k 您应该找到可以访问所有城市的最少天数 您还可以多次访问城市 但理想情况下您不想这样做 因为您想尽量减少停留天数 Input 给你一个日期和城市的
  • 我必须压缩 PNG 文件图像,而不损失质量

    我想压缩 PNG 图像 以减小其大小 但质量应保持不变 我尝试过压缩JPEG图片 图片压缩约 90 质量保持不变 但当我用它压缩 PNG 图像时 没有结果 就没有压缩 尺寸相同 这是我的代码 public const string Stat
  • 如何使用流将大文件压缩到 blob 中

    我将 Azure 与 blob 存储和 Azure Functions 结合使用 我有很多文件 有时我想生成一个 zip 将其保存在存储中并生成一个链接 由于我的 zip 可能很大 1 或 2 Go 我想 即时 执行此操作 这意味着在保存之
  • 如何在 Node.js + Express + Mongoose + Jade 中处理表单验证,尤其是嵌套模型的验证

    您如何使用 Express 和 Mongoose 处理表单验证 您使用的是自定义方法 某些插件还是默认错误数组 虽然我可能会看到使用默认错误数组进行一些非常简单的验证 但在具有嵌套模型的情况下 这种方法似乎会崩溃 我个人使用节点验证器 ht
  • 我们什么时候应该在 php Phalcon 中使用多模块结构(而不​​是简单结构)

    我们什么时候应该在 php Phalcon 中使用多模块结构 而不 是简单结构 我发现了一些多模块骨架 例如 https github com ovr phalcon module sculpture https github com ov