php框架
php框架的功能通用的路由,autoload。服务端mysql封装,日志组件。前端的页面渲染(smarty封装个)。在工作时听说别的部门换框架性能提升,所以调研了下常见的框架,包含ci,laravel,yii,yaf,会介绍下功能,另外给出号称最快框架yaf和常用yii和裸写框架的性能差。另外想实现rpc并发,http一般用过multi_curl可以,公司用的thrift没有实现并发,所以研究了下php协程,curl_multi,swoole异步,rpc中并发实现,corotine等。 常用php框架提供功能ci http://codeigniter.org.cn/use...Route.autoload.载入文件正常controller 中load->helper(xx)。直接用xxlog. db. hook.公共函数。代码逻辑分层。ui抽象。模板。laravel https://laravel-china.org/doc...路由中间件(前置后置)配置区分环境,本地和线上密码不放其中数据库 创建表,编辑,删除,迁移,回滚,软删除和恢复(标记删除位)。ORM链式操作依赖注入,依赖自动发现。 IOC 平时的if new 这种工厂模式,IoC模式看作工厂模式的升华,以前在工厂模式里写死了的对象,IoC模式 改为配置XML文件,这就把工厂和要生成的对象两者隔离类(DatabaseQueue,queue,QueueContract),serviceprovider(外部调这个)=>bind(将类绑定到容器)。调用Queue::xx。依赖注入可以直接调用$类->method。通过门面可以类::method【https://www.cnblogs.com/shiwenhu/p/6882340.html】事件 事件映射protected $listen = [ 'App\Events\OrderShipped' => [ 'App\Listeners\SendShipmentNotification', ],];写事件OrderShipped,写监听SendShipmentNotification 可以继承队列分发事件:public function ship($orderId) { order=Order::findOrFail(orderId); // 订单的发货逻辑... event(new OrderShipped($order)); }队列 ,redis,db, 广播js监听任务调度 只是cron yii https://www.yiichina.com/doc/... 功能全面读介于ci和laravel之间,前端支持功能丰富。组件和行为是它的特色行为 要定义行为,通过继承 yii\base\Behavior 。覆盖其中的events方法,public function events() { return [ ActiveRecord::EVENT_BEFORE_VALIDATE => 'beforeValidate', ]; } public function beforeValidate($event) { // 处理器方法逻辑 },附加行为:lass User extends ActiveRecord { public function behaviors() { return [ [ 'class' => MyBehavior::className(), 'prop1' => 'value1', 'prop2' => 'value2', ]]}}或者attach组件就可以使用行为了。直观感受下 ...