我在2002年左右开始了PHP编程,那时并没有那么多的框架。多年来,我开发了自己的PHP框架,它似乎与我遇到的任何标准完全不同。
我将尝试描述我创建的框架:
基本上,它是一个引擎,通过将模板文件转换为HTML文件来构建整个web应用程序。应用程序通常由应用程序中每个不同页面的模板文件和一些定制的CSS /JS文件组成,这些文件用于引擎中没有(尚未)的内容。用户交互是使用框架中的标准PHP脚本完成的,可以处理各种操作(选择、创建、更新、查看、删除、发送电子邮件、导出PDF或Excel等)。引擎自动知道应该使用哪些脚本,这些脚本所需的所有变量都由Javascript使用Ajax发送,包括操作类型和所有需要的表单值。然后将JSON或创建的PDF或Excel文件的URL发送回客户端。
模板可以包含客户端HTML、CSS和Javascript以及服务器端SQL,但最重要的是由PHP解释的定制xml标记,并根据属性转换为(多个)HTML标记、CSS和Javascript-代码。有很多不同的标准PHP--用于定制标记的类,它们可以输出可视化的东西,如按钮、数据集、表单等,但标记和属性也用于数据库--使用Ajax/jQuery进行数据库内容、会话、客户端更新、生成mPDF、发送电子邮件等。该引擎可以使用各种库,如jQuery UI、Cordova、Bootstrap、PHPExcel、mPDF等,并自动知道输出文件中包含哪些JS和CSS文件。它还可以缓存HTML、构建应用程序以及缩小JS和CSS。
这样,对于应用程序或数据库中的任何内容(例如帐户或发票),我都没有特定的类。当我的数据模型发生变化时,我只需更新模板,而根本不需要PHP代码。
我正在尝试的每个框架(例如Phalcon、CakePHP和Laravel)似乎都需要定义业务逻辑、数据模型和特定PHP类(例如帐户或发票)中的所有交互。因此,当将字段添加到数据库表时,需要将属性添加到相应的类中。当然,也会改变视图模板和交互控制器。对于数据库中的每个表,都需要不同的模型和控制器文件。与我的解决方案(我的一些应用程序使用100+不同的数据库表)相比,我认为这是相当复杂和耗时的。
我的方法的缺点是维护框架中的标准类需要做大量的工作。特别是因为在不同的应用程序中,相同的类需要能够有一些不同的行为,所以每个类都有很多属性来控制这一切。这样的发动机已经变得非常强大,但也相当缓慢,复杂和难以维护。我意识到我的解决方案并没有真正将代码和设计分开,但是由于我构建的大多是数据库web应用程序,所以这对我来说并不是必要的。使用一些定制的CSS,可以对事情的外观进行足够的操作。
那么,现在该去哪儿呢?我真的很喜欢我的框架,但我想更多地遵守网络标准,以便能够更容易地雇用外部开发人员。但是,由于我的框架与其他任何东西都有很大的不同,所以我不知道该选择哪个框架。
我的问题是:
发布于 2015-12-13 15:07:10
PHP本质上是一种简单的语言。它有许多有用的库,但没有内置的web框架,不像C#和ASP.NET框架。
因此,您需要使用框架:
请记住,PHP本身就是作者为帮助他解决自己的问题而写的。大多数框架就是这样启动的。如果您的框架解决了其他框架无法解决的问题,那么它可能是值得的,您也将从中学习,否则您将重新发明车轮。
就我个人而言,当我第一次开始编程时,我是反框架的,编写我自己的助手类。随着客户需求的不断变化,我的优雅代码最终变成了讨厌的意大利面代码。我记得有一次我的老板让我从页面上删除一个复选框,当我删除它时,它导致我的半生不熟的web框架在演示过程中崩溃。我从中了解到,MVC模式可以避免这个问题。从那时起,我就使用了众所周知的和经过测试的框架来节省其他开发人员所花费的时间,而这些时间是我无法浪费的。
从你的帖子听起来,你已经面临着写你自己的框架的问题,这是一种权衡,它似乎使事情在一开始很容易,但后来很难修改。另一方面,其他框架似乎是一种开销,但从长远来看,它会使您的应用程序更紧。
您可以选择任何这些流行的框架来完成您的任务。使用模型和属性的优点是您的视图将是强类型的,这要安全得多。
https://softwareengineering.stackexchange.com/questions/304957
复制相似问题