1. Slim源码阅读笔记

    以前读过 PHP - The Right Way 一文, 还翻译过其中的 The Baiscs 一节 (译文见 这里)。

    前两周读了 Modern PHP - New Features and Good Practices 一书 (读书笔记见这里), 甚是不错。

    这篇文档和这本书的作者都是Josh Lockhart, 他写了一个Web框架Slim,文档与书籍内容的精华都体现在这个框架中, 所以个人觉得这个框架值得一读。

    Slim的设计与实现都非常精简易懂,其对请求的主处理流程如下图所示:

    slim

    其中的核心概念包括:IoC容器、中间件、路由匹配等。

    IoC容器

    IoC,为Inversion of Control的缩写,中文翻译为“控制反转” - 是一种解决组件间依赖关系、配置和生命周期的设计模式,其最常见的实现方式为:依赖注入(DI)- 当系统 …

    标签: PHP slim 笔记 总结
  2. Yii源码阅读笔记 - 日志组件

    使用

    Yii框架为开发者提供两个静态方法进行日志记录:

    Yii::log($message, $level, $category);
    Yii::trace($message, $category);
    

    两者的区别在于后者依赖于应用开启调试模式,即定义常量YII_DEBUG:

    defined('YII_DEBUG') or define('YII_DEBUG', true);
    

    Yii::log方法的调用需要指定message的level和category。category是格式为“xxx.yyy.zzz”的路径别名字符串,比如日志是在yii/framework/web/CController类中记录的,那么category为“system.web.CController”。level应为以下几种之一:

    • trace:Yii::trace方法即是使用的这个level。用于跟踪执行流
    • info:记录通用信息日志
    • profile:用于性能分析
    • warning:用于记录警告日志
    • error:用于记录重大错误日志

    要想日志真的输出到文件、邮件、web页面等地方 …

    标签: PHP Yii 笔记 总结
  3. Cordova/Phonegap应用构建环境搭建

    混合(Hybrid)移动开发将Web开发与原生开发优势互补,之后应该是一个不错的方向。Phonegap是混合移动开发的一个方案, 开发者可以使用标准的Web技术进行开发,然后使用Phonegap打包成原生APP,也可以为Phonegap开发插件来扩展APP功能。 Cordova是Apache的顶级项目,起于Adobe贡献给Apache基金会的Phonegap源码,之后Phonegap官方貌似则专注于提供Phonegap应用的云构建服务。 Phonegap官网提供的文档与Apache Cordova文档是相同的,所以从技术上可以将Phonegap与Cordova视为同一个东西。

    虽然Phonegap官方提供免费的开放(public)应用以及一个私有应用构建服务。但对于应用调试或插件开发来说, 使用云构建服务上传源码下载APP还是挺耗时间的,不太方便,所以搭建本地的应用构建环境是必要的。

    依据Cordova文档的The Command-Line Interface 部分,针对Android应用,在Ubuntu上搭建Cordova应用构建环境的步骤如下所示:

    1. 安装Node.js和git客户端

    • NodeJS官网下载Linux二进制压缩包,解压缩后将bin路径加入PATH环境变量,即可从命令行执行node、npm命令。
    • sudo apt-get install git

    2. 安装Cordova:

    • sudo npm install -g cordova

    3. 下载JDK …

  4. 读书笔记:演讲之禅-一个技术演讲家的自白

    大大小小的技术会议参加过不少,关于演讲,从一个听众的角度也有一些心得;随着技术积累能力提升,也希望能够在一些正式场合做技术演讲。年轻的技术人应该学会经营自己,show出你自己。

    我并不是一个擅长表达的人,虽然私底下在朋友技术圈内做过一些技术分享,但对于正式场合的技术演讲却没什么经验。

    演讲是个经验活,但总归有一些可事先准备、能够提高成功概率的方法和注意事项吧?所以找来《演讲之禅-一个技术演讲家的自白》一书,看看是否能从别人的经验中学到点什么。


    毋庸置疑,这本书非常实在,值得一读。根据该书内容以及自己的一些想法,按照时间顺序整理出技术演讲相关的注意事项:

    演讲前

    一个成功的演讲毫无疑问是需要提前准备的,这里的“准备”不仅仅是准备幻灯片这么简单。

    首先,你需要搞清楚-举办方对会议或者活动的定位,与定位直接相关的即是听众-是哪些人,他们想知道什么,需要听到什么,根据这个定位来选择主题; 与主题相关的是你需要考虑自身是否有能力驾驭这个主题-待分享的技术你是否真的懂?这方面经验是否足够?不要试图分享那些自己还一知半解的技术点,否则就注定是在给自己挖坑!

    从听众情况和自身情况两方面来选择主题,另外还得根据演讲的时间来调整主题的范围大小。从小老师就告诉我们作文题目得小而具体,立意要新。个人认为对于演讲的题目也应如此。

    在确定演讲的具体题目后,个人建议可以先篇文章,在文章中将演讲题目相关的问题细节都搞清楚讲清楚,然后根据文章内容确定要分享内容中哪些方面(通常由于时间限制很难面面俱到,所以要有所选择), 定下演讲的提纲,即明确了演讲的整个大致的思路 …

    标签: 笔记 演讲
  5. Yii源码阅读笔记 - 应用模块化

    概述

    Yii框架有个“模块(Module)”的概念,与“应用(Application)”类似,模块必须归属于一个父模块或者一个应用,模块不能单独部署,一个应用不一定要分模块。

    由此可以看到,Yii的“模块”和“应用”类似于Django框架中的“应用(App)”和“项目(Project)”。

    当一个应用的规模大到一定的程度 - 可能涉及多个团队来开发,就应该考虑分“模块”开发。“模块”通常对应应用的一个相对独立的功能。

    一个模块化的Yii框架应用的工程目录结构大致示例如下:

    Yii-WebApp-Modules

    上图所示项目有一个名为“forum”的模块,该模块下也有自己的componentscontrollersmodelsviewsextensions目录,与一个普通的/不分模块的Yii框架Web应用的项目结构非常相似。

    Yii框架模块化应用的所有模块默认都是放在protected/modules目录下,每个模块的内容又各自放在以模块ID(如forum …

    标签: PHP Yii 笔记 总结
  6. Yii源码阅读笔记 - 缓存

    概述

    从之前的文章Yii源码阅读笔记 - 路由解析Yii源码阅读笔记 - Model层实现可以看到Yii框架对于解析好的路由规则数据表的schema都会根据条件尝试读写缓存 来提高应用性能。

    但缓存组件并非核心组件,需要额外的配置,默认ID为cache,如果不使用该ID,那么就得注意同时配置好框架中使用缓存的组件。

    恰当地使用缓存组件,能明显地提高应用的性能。

    针对不同的缓存后端(backend),Yii框架提供了多种缓存组件,如文件缓存(CFileCache)、Memcached缓存(CMemCache)、Redis缓存(CRedisCache)等。这些缓存组件(除CDummyCache外,CDummyCache并不是一个有效的缓存组件)均直接继承自抽象类CCache(见文件yii/framework/caching/CCache.php)。

    下面以使用Memcached缓存为例,分析Yii框架缓存组件的实现。

    分析

    CMemcache所在的整个继承树(CMemcache -> CCache -> CApplicationComponent …

    标签: PHP Yii 笔记 总结

Page 3 / 6