gabriel-guelfi / splitphp
轻量级、现代的PHP API框架,学习曲线低
Requires
- php: >=7.4
This package is auto-updated.
Last update: 2024-09-28 12:54:23 UTC
README
介绍
了解PHP就足够了!
SPLIT PHP 的诞生源于对当前市场上为PHP开发者提供的框架工具过于复杂、重量级和老旧风格的认知。这个框架不是MVC,而是基于SOA(面向服务架构),使其更可重用、直观、RESTful友好,并易于构建微服务系统。它被设计得简单而精简,学习曲线低。其使命是成为一个轻量级且界面简化的工具。理解和维护使用此框架编写的应用程序所需的知识是基本的PHP和面向对象编程,运行它唯一的依赖就是PHP本身。
新增内容
版本:1.4.10
发布日期:2024-07-26
最后更新:2024-07-26
-
在composer中添加。是的,它终于来了!XD
-
在此版本中添加了内置的“generate”脚手架命令。
-
DAO现在有一个“clearPersistence()”方法来手动清除数据持久性。
-
添加了一些用于字符串转换的Utils方法。
-
Dao::bindParams()方法现在接受一个用于占位符名称的第二个参数。
-
在数据库操作中添加了使用“IN/NOT IN”的选项。
-
扩展了System::errorLog()方法,以包含更多、更详细的信息。
-
修复了许多与NULL值处理和数据库访问相关的小错误。
-
修复了SQL注入漏洞。
-
在错误日志记录方面进行了改进,提供了更详细的信息。
在Release Notes.txt文件中了解更多。
要求
- PHP 7.4+及其库(是的,就这些!;P )
概念
为什么是 "SPLIT"?首先,因为“split”这个词是关于微服务和分割系统架构的参考(当然,如果你喜欢,也可以用它来构建单体)。此外,它是以下5个紧密相连的概念的缩写,这些概念是这个框架的基础:《strong>"简单性"》、《strong>"纯粹性"》、《strong>"轻量级"》、《strong>"直观性"》和《strong>"目标导向性"》。
-
Simplicity:工程师应该尽可能简单地解决问题。如果有一个简单的解决方案能解决问题,那么这就是正确的解决方案!当仅仅为了在屏幕上打印“Hello World!”的端点,就需要大量的配置和不同的文件时,就有些不对劲了。
-
Purity:没有大量的供应商和《strong>没有新的供应商特定的语法,只有朴素的PHP和面向对象编程。一个框架应该是一个推动者,一个特定技术的工具箱,所以《strong>框架的依赖,理想情况下,只应该是这项技术本身。
-
Lightness:与上述两个概念相关,一个《strong>快速而轻量级的软件工具可以创建《strong>更便宜、质量更好的系统,避免许多头痛和金钱损失。
-
易用性:开发者在使用库或框架时遇到困难,只有当这个开发者对库或框架所基于的特定技术不熟悉时。以极其成功的例子JQuery为例。一个懂javascript的开发者只需要几小时就能理解JQuery。这与“纯净性”概念紧密相关。如果一名PHP高级工程师必须练习几周才能真正熟练使用特定的PHP框架或库,那么再次强调:肯定有问题。
-
目标导向:框架作为一个辅助工具存在,因此允许工程师不必担心技术问题,而只需专注于构建系统所创建的解决商业问题的解决方案。
面向服务架构(SOA)
服务基本上是一个封装的功能块,可以从应用程序的任何部分访问。因此,所有服务都可以在系统内部相互访问,但不能直接从客户端访问,客户端只能访问API层,它充当应用程序的“看门人”。结果是,一组可重用的服务可以从应用程序的任何地方访问,但外部访问受到控制。
SPLIT PHP框架将API层表示为WebServices,其中定义了应用程序的端点。在端点内,WebService可以调用服务并/或响应用户。总之,使用SPLIT PHP的SOA创建API,开发者将创建服务,这些服务是执行实际操作类的实例,然后在WebService上注册端点。就这么简单!
入门指南
- 在此路径上下载框架源代码,并在您的应用程序路径中解压缩它。(Composer解决方案目前正在研究)
- 运行
php console setup
,这将生成一个包含一些自动设置的"/config.ini"文件。 - 根据您的应用程序需求设置"/config.ini"文件。
- 通过运行命令
php console server:start
启动您的应用程序。 - 在浏览器中访问https://:8000,您将看到
欢迎页面。
有关更多信息,请参阅官方文档.
PS:PHP的内置服务器仅适用于开发环境。要正确在生产环境中运行,请参阅文档中的“部署”部分。
基本用法
您的应用程序基本上将构建在"/application/"下的三个主要文件夹中
- 在"/application/routes/"下创建您的WebServices,您的API层
端点由三个部分组成
- HTTP动词("GET")
- 路由("/home")
- 处理函数,当访问路由时执行
在上面的示例中,您可以通过https://:8000/site/home访问那个"/home"端点
- 在 "/application/services/" 下创建您的 服务,所有魔法都在这里发生。所有业务规则、数据处理、数据库操作等都在 服务 中。
- 在 "/application/templates/" 下放置您的 视图,您的 HTML 模板。
注意,这是在第一个示例中的 WebService 中渲染的模板,并且这个 $data 变量在渲染时具有相同的名称。在这 3 个示例中,如果您访问 "https://:8000/site/home",您将看到一个包含此 HTML 模板内容的网页。
了解更多信息,请访问 官方文档
结论
SPLIT PHP 仅需要 PHP 运行,其语法与标准 PHP 语法没有区别,没有比注释更多的“特殊注解”,没有其他引擎来使其完全工作。一个了解基本 PHP 和面向对象编程的开发者,在短时间内应该没有问题自信地学习如何使用它,并且使用它创建的应用程序轻便且快速。
访问 官方网站 了解更多信息,并在 PHP 中构建丰富和现代的 Web 应用程序。
此框架是世界巨大技术开源社区的一部分。它是免费下载、使用、修改和分发的。有关其许可信息,请参阅 MIT LICENSE.pdf 文件。
如果您是 PHP 热衷者并且喜欢这项工作,请帮助我们扩大社区并为此框架添加新功能,加入我们。发送电子邮件给我,我将您添加到 SPLIT PHP 的 Slack 通道。
啊,如果您喜欢这项工作,别忘了 star它并关注 此存储库,以便了解我们的新功能。谢谢!
作者
-
Gabriel Valentoni Guelfi(第一作者和创始人)
领英: Gabriel Guelfi
致谢
- João Paulo Varandas,我的前任老板和 inPaaS 的作者,一个用 Java 编写的低代码平台。SPLIT PHP 的许多编码界面与 inPaaS 相似。感谢您提供的海量知识。
- João Ricardo Escribano,我的朋友,另一位技术怪物,他教会了我很多,并鼓励了我很多。感谢您的耐心,以及向您展示软件工程的世界。
- Thiago Valentoni Guelfi,我的兄弟,他比我更早开始,并鼓励我创建自己的框架,通过创建他自己的 (https://github.com/Thiagoguelfi2012/openmvc-php)
- Ronny Amarante,inPaaS 团队的科技领导者,也教给了我很多我现在所知的知识。谢谢!
- Fulvius Titanero Guelfi,我的叔叔,他多次打开我的思路,让我接触到了新的编程和技术范式。谢谢!
- 向全球广大开发者社区致谢,他们在整个网络中免费发布了无数知识。