php 框架

2018-02-26 学习交流

Laravel 

  • Composer 做包管理,可以很方便的引入项目,Laravel就用到了boris,whoops,monolog,swiftmailersymfony下面的一批基础类

  • 标准的 Autoload 实现,让 `include xxx.php` 成为历史

  • 各种依赖注入,各个功能很少的耦合

  • ORM 支持

  • RESTful Routing

  • 由一些简单的Service实现,通过Facade访问,很多常见的问题就可以处理

  • Blade 模板引擎

  • 命令行驱动, 可以做到高度自动化

  • migration 数据库版本系统 和 seeding

  • 模仿rails,舒适的开发体验和效率,缺点是性能略差


codeigniter

入门简单,性能低


yii

功能强大。查询出来的数据操作都是对象式的用chtml::listData()转化成数组。组件提高开发速度。


thinkphp

容易上手,db部分和route rest部分。


cakephp

简单


zend

超大超全的类库,运行速度有点慢,很多框架都留有zend类的接口


symfony

复杂


kohana

封装简单


speedphp

简单高效,有sae版,扩展方便,适合改造,速度也不错,开发社交游戏可用这个框架改造。


Phalcon

速度快,功能全面,性能最好,扩展形式安装


yaf

速度,自动加载. 支持全局和局部两种加载规则,需要编译个扩展


swoole

PHP的异步、并行、高性能网络通信引擎,为PHP多进程的模式设计了多个并发数据结构和IPC通信机制,包括了并发原子计数器,并发HashTable,Channel,Lock,进程间通信IPC等丰富的功能特性。有统一的唯一全局对象。

提供了很多类库工具,表单生成、输入验证和过滤,登录验证处理,JS生成,Ajax支持,调试工具,客户端操作,URL合并拆分工具等。

普通LAMP方式,最好安装APCOPCode缓存。运行效率略低于thinkphp,但远超CodeIgniter,差不多是2倍以上。

如果以Server方式运行的Swoole,性能是Apache下的将近8-14倍。而且内存占用很少。


Workerman

socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。http://www.workerman.net


Lysine

RESTful web app开发框架

http://github.com/yeaha/Lysine2


golang

如何让coroutine的接口更好用

执行协程只需要极少的栈内存(大概是4~5KB),默认情况下,线程栈的大小为1MB。goroutine就是一段代码,一个函数入口,以及在堆上为其分配的一个堆栈。所以可以很轻松的创建上万个goroutine.



进程、线程、协程的关系和区别:

  • 进程拥有自己独立的堆和栈,既不共享堆,亦不共享栈,进程由操作系统调度。 

  • 线程拥有自己独立的栈和共享的堆,共享堆,不共享栈,线程亦由操作系统调度(标准线程是的)。 

  • 协程和线程一样共享堆,不共享栈,协程由程序员在协程的代码里显示调度。


apache多进程,性能会随着连接数的增多而变差; node.js 非阻塞,异步IO


rust

模块化,编译器保证指出你的错误,可以避免内存泄漏


css3

新增加阴影,圆角度以及动画处理,包括平滑,旋转,缩放,3D倾斜等


amd和cmd

AMD 是 RequireJS 在推广过程中对模块定义的规范化产出。 CMD 是 SeaJS 在推广过程中对模块定义的规范化产出。类似的还有 CommonJS Modules/2.0 规范,是 BravoJS 在推广过程中对模块定义的规范化产出目的都是为了 JavaScript 的模块化开发。

 区别:

    1. 对于依赖的模块,AMD 是提前执行,CMD 是延迟执行。 RequireJS 从 2.0 开始,也改成可以延迟执行。CMD 推崇 as lazy as possible.

    2. CMD 推崇依赖就近,AMD 推崇依赖前置。




phploc

分析php框架 https://github.com/sebastianbergmann/phploc



ps:

laravel 5.3 中文文档

https://d.laravel-china.org/docs/5.3