CODE, ARCHITECTURE & AI
代码、架构与 AI 时代.
记录工程实践,也探索 AI 时代软件与人的新可能。
484 篇记录保持好奇,慢慢积累
一切的开始: SAPI接口 通常我们编写PHP Web程序都是通过Apache或者Nginx这类Web服务器来测试脚本. 或者在命令行下通过php程序来执行PHP脚本. 执行完成脚本后,服务器应答,浏览器显示应答信息,或者在命令结束后在标准输出显示内容. 我们很少关心PHP解释器在哪里. 虽然通过Web服务器和命令行程序执行 脚本看起来很不一样. 实际上她们…
安全?安全!安全!! 在某日下班后,回家的路上,一个人走,走着走着,忽然我的手碰到了另一支手,艳遇?扭头!发现一新疆美男在左顾右盼。然而我背的包已经被拉开了一半。好险,我的kindle,钱包都在包里。 年关将近,是该注意安全了。特别是回家的路上,请各位兄弟照顾好贵重物品和老婆,防火防盗啊! 好吧,言归正转。我们还是说说我们在开发中的安全问题吧。 这里我们从一…
Yii框架中有点意思的文件缓存 在Yii框架的framework/caching目录下是Yii框架的所有缓存操作。包括文件缓存,APC缓存、Db缓存,Memcache缓存等。 今天我们要说的是文件缓存。 【文件和类结构】 它总共包括CFileCache.php、CCache.php和接口文件。 缓存基类CCache抽象类实现了CApplicationComp…
第二节 PHP源码结构、阅读代码方法 PHP源码目录结构: 俗话讲:大巧不工。PHP的源码在结构上非常清晰甚至简单。下面,先简单介绍一下PHP源码的目录结构。 build : 源码编译相关文件,包括buildconft等sh文件,还有一些awk的脚本。 ext 官方扩展目录,包括了绝大多数PHP的函数的定义和实现,如array系列,pdo系列,spl系列等函…
第三节 PHP实现中的常用代码 在PHP的源码中经常会看到一些宏或一些对于刚开始看源码的童鞋比较纠结的代码。这里提取中间的一些进行说明。 1. 关于##和# 在PHP的宏定义中,最常见的要数双井号。 双井号 在C语言的宏中,"##"被称为 连接符 (concatenator),用来把两个语言符号(Token)组合成单个语言符号。这里的语言符号不一定是宏的变量…
第一节 环境搭建 在开始学习PHP实现之前, 我们首先需要一个实验和学习的环境. 下面介绍一下怎样在*nix环境下准备和搭建PHP环境. (*nix指的是类Unix环境,比如各种Linux发行版,FreeBSD, OpenSolaris, Mac OS X等操作系统) 1.获取PHP源码 为了学习PHP的实现,首先我们要下载源代码.下载源码首选是去 PHP官…
奇技淫巧一:循环加速 循环通常是程序性能问题的多发地段。优化某些循环能极大的提高某段程序的性能。 以下的测试环境为:win xampp1.7.3 PHP5.3.1 【数组长度】 也许,maybe,可能,你看到如下类似的代码: 以上的程序运行在我的电脑上基本上是3.3秒到3.4秒的样子。 如果我们把count($data)的计算提前到循环前,以局部变量在循环中…
数据库抽象层和Doctrine DBAL 源码简单分析 【概述】 数据库抽象层,顾名思义,将数据库抽象出来,作为一个独立的层存在。它存在的作用是当从一个数据库系统向另一个数据库系统迁移时,几乎不用更改太多的程序代码或者只是改一下配置文件,其它的工作都会交给数据库抽象层去做。数据库抽象层会根据使用的数据库自动调整,这样会提高开发效率,但是由于数据库抽象层是在数…