Download the PHP package dkkevincheng/vinc without Composer
On this page you can find all versions of the php package dkkevincheng/vinc. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dkkevincheng/vinc
More information about dkkevincheng/vinc
Files in dkkevincheng/vinc
Package vinc
Short Description 自己动手搭建一个属于自己的MVC框架,实现极简主义设计。风格类似Sinatra。
License MIT
Informations about the package vinc
Vinc
自己动手搭建一个属于自己的MVC框架,实现极简主义设计。风格类似Sinatra。
一个优雅简单的框架 : Vinc
- composer一个PHP界神器
- MVC框架路由的思考
- 设计框架的骨骼
- 使用ORM提高框架的效率
- 发送属于你自己的第一封邮件
- 缓存服务器Redis,怎么能少了你呢?
- 把门面做出来,让变美更简单
本仓库是一个示例代码,如果有兴趣,可以关注作者公众号或者加群讨论。
composer一个PHP界神器
说起composer,就要讲PSR规范,也就是FIG。FIG 最初由几位知名 PHP 框架开发者发起,在吸纳了许多优秀的大脑和强健的体魄后,提出了 PSR-0 到 PSR-4 五套 PHP 非官方规范:
- PSR-0 (Autoloading Standard) 自动加载标准
- PSR-1 (Basic Coding Standard) 基础编码标准
- PSR-2 (Coding Style Guide) 编码风格向导
- PSR-3 (Logger Interface) 日志接口
- PSR-4 (Improved Autoloading) 自动加载优化标准
Composer 利用 PSR-0 和 PSR-4 以及 PHP5.3 的命名空间构造了一个繁荣的 PHP 生态系统。类似 npm 和 RubyGems,给海量 PHP 包提供了一个异常方便的协作通道。 后期基于composer演化出来的框架,有 Laravel 和 Symfony。 本文也是基于composer创建一个自己的MVC框架。
MVC框架路由的思考
使用composer初始化项目
使用阿里云的composer仓库
安装composer
开始构建我们自己的路由,路由的选择可以参考github的搜索结果
本教程我们选择简单易上手的noahbuscher/macaw,大家可以去官网上看看。
编辑composer.json文件
使用插件
打开浏览器,输入127.0.0.1:5000 ,看到Hello world!,表示你安装成功。 更多选项可以参考文档,github有详细使用。
原理梗概 当php引入composer的自动加载文件后,composer会在内存维护一个全量命名空间,类名到文件名的数组。这样我们在使用某个插件功能的时候,会在数组中找到它。 当Macaw::get,使用get的时候,会由Macaw的一个callstatic() 接收,这个函数接受两个参数,$method 和 $params,前者是具体的 function 名称,在这里就是 get,后者是这次调用传递的参数,即 Macaw::get('/',function(){...}) 中的两个参数,一个是路径,一个是函数处理。 callstatic() 做的事情就是分别将目标URL(即 ‘/’)、HTTP方法(即 GET)和回调代码压入 $routes、$methods 和 $callbacks 三个 Macaw 类的静态成员变量(数组)中。 最后由Macaw::dispatch()的方法处理。不能直接匹配到的将利用正则进行匹配。
设计框架的骨骼
终于我们的框架实现了第一步,已经能通过路由访问不同的页面了。 下面我们要实现的是搭建起来自己的MVC结构。 这就说到了PHP框架另外的价值:
- 确立开发规范以便于多人协作
- 使用 ORM、模板引擎 等工具以提高开发效率。
开始编码了~~
打开浏览器,输入网址 127.0.0.1:5000 ,你看到配置成功了。我们已经实现了控制器。
配置数据库,实现model文件
现在MVC的M和C都已经实现了。我们现在实现view
MVC框架本质是一种管理代码的格式。现在几乎所有人都是通过学习某个框架来了解 MVC 的。但是一旦脱离了框架,一个页面也写不出。我认为,框架再成熟,也离不开PHP的基本原理和哲学。不管哪种语言都是为了让人脑这样的超低 RAM 的计算机能够制造出远超人脑 RAM 的大型软件。一个框架驱动程序做的时区是这样的,入口文件通过路由调用控制器,控制器调用模型,模型和数据库交互,返回数据给控制器,控制器在调用视图,视图把数据装载进视图显示给用户,流程结束。
使用ORM提高框架的效率
本篇集成一个 ORM Composer包 ORM 就是'Object Relational Mapping'=对象关系映射。ORM的出现是为了帮我们把对数据库的操作变得更加地方便。
启动php-server,刷新浏览器,看到内容正常显示。至此,视图装载器实现完成
发送属于你自己的第一封邮件
上面的内容,我们已经搭建出来了自己的框架,有没有觉得很好玩,下面我们就更加进一步。扩充我们的邮件发送系统。
缓存服务器Redis,怎么能少了你呢
Redis是一个高性能的 'key-value' 数据库,其'value'支持 'String'、'Map(Hash)'、'list'、'set' 和 'sorted sets',中文翻译为 字符串、字典(哈希,在'世界上最好的语言PHP' 中属于 '数组' 的一部分)、列表、集合和有序集合。我们可以用 Redis 作为高速缓存,存放系统经常需要访问的数据。相比使用文件作为缓存,Redis 拥有更高的性能、更好地可维护性和更强大的操作 API。
我们来扩展redis功能
我们的MVC框架搭建到此基本完善,后续还有很多好的插件,我会在这里进行更新,相关的模块如何使用,我会开设专门的板块讲解,谢谢您的耐心查看和陪伴!
把门面做出来,让变美更简单
使用我们的框架做一个程序 ...待续
参考文档列表
1.Pinatra/Pinatra 2.noahbuscher/macaw 3.Illuminate/Database 4.filp/whoops 5.nrk/predis 6.nette/mail