从零开始搭建自己的Swoole框架(十二)日志系统|架构|PHP-FireRabbitEngine-Swoole安装日志系统日志习题属于框架的一部分,因此在框架目录下执行:
1composer require monolog/monolog
Logger在框架 module 下新建 Logger 文件夹用来保存日志相关功能代码,
在 Logger 创建 Log 类:
123456789101112 ...
阅读更多
从零开始搭建自己的Swoole框架(十一)数据库模型|架构|PHP-FireRabbitEngine-Swoole前言数据库操作类自己写不安全,而且也有比较成熟的插件包了,
因此我打算直接引入 Laravel 相同的 ORM。
插件包安装数据库操作属于框架层面的,因此在框架的目录下执行:
1composer require illuminate/database
框架目录下也会自动创建一个 comp ...
阅读更多
从零开始搭建自己的Swoole框架(十)数据库迁移|架构|PHP-FireRabbitEngine-Swoole前言通常情况下我们要创建 MySQL 数据库的表需要手动创建 SQL 语句。
然而这样一方面是很不方便,另一方面也不安全,如果修改表结构的时候不小心改错了,就会造成无法挽回的后果,而且最关键的是还不知道是谁干的!
之前上班的时候同事就遇到这种情况,有一个同事不小心删了另一个同事要用的表,结果不言而喻 ...
阅读更多
从零开始搭建自己的Swoole框架(九)视图blade模板|架构|PHP-FireRabbitEngine-Swoole前言路由模块终于告一段落了,虽然完成了但还没有经过严格测试,
因此可能会存在一些问题,具体问题就等接下来的开发过程发现就好了。
视图模块由于我的框架不是专门做 API 的,也不是微服务架构,而是单体应用,
也就是说会出现 HTML 代码跟 PHP 代码混合在一块的视图文件,
直接用原生的 PHP 来 ...
阅读更多
从零开始搭建自己的Swoole框架(八)路由中间件|架构|PHP-FireRabbitEngine-Swoole中间件的概念中间件就是一种系统之间互相连接的“中间的一层”。
通俗的讲类似古代的关口,西游记里唐僧每到一个国家都要取得这个国家的“通关文凭”,如果没有通关文凭就无法离开国界。边关的守卫就可以理解为“中间件”,唐僧就是请求,如果没有通过文凭(即达不到某种要求)就会被拦截在关口。
也就是说,中间件的主要 ...
阅读更多
从零开始搭建自己的Swoole框架(七)路由动态注入参数|架构|PHP-FireRabbitEngine-Swoole前言已经写到第七章了,竟然还是在写路由 = =
今天就来实现路由给方法动态传参的功能。
动态传参就是说路由定义的规则:/article/{id},会自动注入到 ArticleController 的 show 方法。
示例:
123456789101112131415161718 ...
阅读更多
从零开始搭建自己的Swoole框架(六)为路由模块添加命名功能|架构|PHP-FireRabbitEngine-Swoole前言参考 Laravel 的路由,希望我的框架可以跟 Laravel 一样给路由命名,
1$router->get('/home', 'IndexController@index')->name('index');
然后提供一个 ...
阅读更多
从零开始搭建自己的Swoole框架(五)为路由模块添加解析路径参数功能|架构|PHP-FireRabbitEngine-Swoole前言上文已经实现简单路由,但还没办法解析路由参数。
例如:
1http://www.huotublog.com/article/1
包含了路径参数,即 article 后面的 1。
本章将为路由模块添加解析路径参数的功能。
另外,Query 参数不叫路由参数 ...
阅读更多
从零开始搭建自己的Swoole框架(四)路由模块|架构|PHP-FireRabbitEngine-Swoole前言路由是一个框架最基本的功能,
虽然没研究过框架的路由是怎么加载的,
这里就凭直觉和使用 Laravel 的经验来自己写一个。
REQUEST_URI用户请求网页输入的网址叫做 URL,URL 在网上已经被统称为 URI 了,下文也采用 URI 的说法。
(注意区分:一个是i,一个是l)
其实 ...
阅读更多
从零开始搭建自己的Swoole框架(三)类的自动加载|架构|PHP-FireRabbitEngine-Swoole准备工作创建文件目录如下:
123456blog|-- app| `-- public|-- firerabbit-engine| `-- module`-- http_server.php
其中,根目录 blog 为项目根目录,app 文件夹是项目所在目录,
pu ...
阅读更多