读书笔记《PHP高级程序设计、模式、框架与测试》
序言
闲来无事,下载了一些电子书,然后看书名不错《PHP高级程序设计_模式、框架与测试》,翻了一下虽然书有点老了但是讲的内容经常会碰到!给大家推荐一下,然后这里放上我的读书笔记,每日更新。
【作 者】(加)Kevin McArthur [同作者作品] [作译者介绍]
【译 者】 汪泳[同译者作品]
【丛 书 名】 图灵程序设计丛书
【出 版 社】 人民邮电出版社 【书 号】 9787115193179
【上架时间】 2009-5-31
【出版日期】 2009 年7月 【开 本】 16开 【页 码】 1 【版 次】1-1
翻译很到位,给翻译官加鸡腿!PHP进阶篇。
另外《PHP核心技术与最佳实践》也可以去翻翻,哇学无止境啊!
索要此书电子版可在下方留言你的邮箱!
章节
- 第一章 抽象类、接口和契约式编程
- 第二章 静态变量、成员和方法
- 第三章 单例模式和工程模式
- 第四章 异常
- 第五章 PHP 6中的新特性
- 第六章 文档编写和编码规范
- 第七章 反射API
- 第八章 测试、部署和持续集成
- 第九章 SPL简介
- 第十章 SPL迭代器
- 第十一章 SPL文件和目录处理
- 第十二章 SPL数组重载
- 第十三章 SPL异常
- 第十四章 MVC架构
- 第十五章 Zend框架简介
- 第十六章 Zend框架高级功能
- 第十七章 应用Zend框架
- 第十八章 Ajax和JSON
- 第十九章 Web服务和SOAP协议介绍
- 第二十章 高级Web服务
- 第二十一章 证书验证
读书笔记
第一章 抽象类、接口和契约式编程
第二章 静态变量、成员和方法
第三章 单例模式和工程模式
第四章 异常
第五章 PHP 6中的新特性
这一章跳过......
第六章 文档编写和编码规范
第七章 反射API
一个关于反射API的实例
<?php interface Iplugin{
public static function getName();
public static function getMenuItems();
public static function getArticles();
public static function getSideBars();
} class MyCoolIplugin implements Iplugin{
public static function getName(){
return "MyCoolIplugin";
}
public static function getMenuItems(){
return array(array(
'description'=>"MyCoolIplugin",
'link'=>"/MyCoolIplugin"
));
}
public static function getArticles(){
return array(array(
'path'=>"11111111",
'desc'=>'aaaaaaaaa'
));
}
public static function getSideBars(){
return array(array(
'description'=>'SideBars',
'test'=>'qqqqqqqqq'
));
}
} function findIplugin(){
$plugins=array();
foreach(get_declared_classes() as $class){
$reflectionClass= new ReflectionClass($class);
if($reflectionClass->implementsInterface('Iplugin')){
$plugins[]=$reflectionClass;
}
}
return $plugins;
}
function computerMenu(){
$menu=array();
foreach (findIplugin() as $plugin){
if($plugin->hasMethod('getMenuItems')){
$reflectionMethod=$plugin->getMethod('getMenuItems');
if($reflectionMethod->isStatic()){
$items=$reflectionMethod->invoke(null);
}else{
$items=$reflectionMethod->invoke($plugin->newInstance());
}
}
}
$menu=array_merge($menu,$items);
return $menu;
}
function computerArticles(){
$articles=array();
foreach(findIplugin() as $plugin){
if($plugin->hasMethod('getArticles')){
$reflectionMethod=$plugin->getMethod('getArticles');
if($reflectionMethod->isStatic()){
$items=$reflectionMethod->invoke(null);
}else{
$items=$reflectionMethod->invoke($plugin->newInstance());
}
}
}
$articles=array_merge($articles,$items);
return $articles;
}
function computerSideBars(){
$sideBars=array();
foreach (findIplugin() as $plugin){
if($plugin->hasMethod('getSideBars')){
$reflectionMethod=$plugin->getMethod('getSideBars');
if($reflectionMethod->isStatic()){
$items=$reflectionMethod->invoke(null);
}else{
$items=$reflectionMethod->invoke($plugin->newiInstance());
}
}
}
$sideBars=array_merge($sideBars,$items);
return $sideBars;
} print_r(computerMenu());
print_r(computerArticles());
print_r(computerSideBars());
读书笔记《PHP高级程序设计、模式、框架与测试》的更多相关文章
- csapp读书笔记-并发编程
这是基础,理解不能有偏差 如果线程/进程的逻辑控制流在时间上重叠,那么就是并发的.我们可以将并发看成是一种os内核用来运行多个应用程序的实例,但是并发不仅在内核,在应用程序中的角色也很重要. 在应用级 ...
- CSAPP 读书笔记 - 2.31练习题
根据等式(2-14) 假如w = 4 数值范围在-8 ~ 7之间 2^w = 16 x = 5, y = 4的情况下面 x + y = 9 >=2 ^(w-1) 属于第一种情况 sum = x ...
- CSAPP读书笔记--第八章 异常控制流
第八章 异常控制流 2017-11-14 概述 控制转移序列叫做控制流.目前为止,我们学过两种改变控制流的方式: 1)跳转和分支: 2)调用和返回. 但是上面的方法只能控制程序本身,发生以下系统状态的 ...
- CSAPP 并发编程读书笔记
CSAPP 并发编程笔记 并发和并行 并发:Concurrency,只要时间上重叠就算并发,可以是单处理器交替处理 并行:Parallel,属于并发的一种特殊情况(真子集),多核/多 CPU 同时处理 ...
- 读书笔记汇总 - SQL必知必会(第4版)
本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...
- 读书笔记--SQL必知必会18--视图
读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...
- 《C#本质论》读书笔记(18)多线程处理
.NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...
- C#温故知新:《C#图解教程》读书笔记系列
一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...
- C#刨根究底:《你必须知道的.NET》读书笔记系列
一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...
- Web高级征程:《大型网站技术架构》读书笔记系列
一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...
随机推荐
- kettle 合并记录
转自: http://blog.itpub.net/post/37422/464323 看到别人的脚本用到 合并记录 步骤,学下下. 该步骤用于将两个不同来源的数据合并,这两个来源的数据分别为旧数据和 ...
- HTML后续
列表标签 <ul>.<ol>.<dl> 列表标签 无序列表 属性: type="属性值".属性值可以选: disc(实心原点,默认),squar ...
- Java BigDecimal初探
更新时间:2016-03-17 一.引言 <Effactive Java>中有这样的描述:float和double类型的主要设计目标是为了科学计算和工程计算.他们执行二进制浮点运算,这是为 ...
- 采用powershell创建project网站集(摘抄自https://www.cnblogs.com/jindahao/p/5855668.html)
采用powershell创建project网站集,具体步骤如下 1.输入License Enable-ProjectServerLicense –Key "23CB6-N4X8Q-WWD7M ...
- kafka概要设计
Kafka核心功能 即:高性能的消息发送与高性能的消息消费 下载安装包后即可启动Kafka服务器,但是此前需要首先启动Zookeeper服务器,Zookeeper是为Kafka提供协调服务的工具,Ka ...
- Linux 系统性能监控命令详解
Linux 系统性能监控命令详解 CPU MEMORY IO NETWORK LINUX进程内存占用查看方法 系统负载过重时往往会引起其它子系统的问题,比如:->大量的读入内存的IO请求(pag ...
- Dockerfile.md
Docker 使用 前提条件 Docker目前只能在64位CPU架构的计算机上运行(目前只能是x86_64 .amd64). Linux 3.8 或 更高版本的内核.3.8之前的版本也能运行,但效果不 ...
- iOS开发中的Markdown渲染
iOS开发中的Markdown渲染 BearyChat的消息是全面支持Markdown语法的,所以在开发BearyChat的iOS客户端的时候需要处理Markdown的渲染. 主要是两套实现方案: 直 ...
- pushlet服务端推送——多播
版权声明:本文为博主牟云飞原创文章.未经博主同意不得转载. https://blog.csdn.net/myfmyfmyfmyf/article/details/36364337 ---------- ...
- 【idea】配置node
参考: http://blog.csdn.net/stubbornaccepted/article/details/71374673 http://www.cnblogs.com/duhuo/p/42 ...