相关文章
上一篇文章 提到的哈希值, 将会在这篇文章揭晓, 看完这篇文章, 也将会清楚地了解 Composer 镜像的工作原理.
认识 Composer 镜像的工作原理之前, 先来认识一个非常好用的参数 -vvv
:
composer require monolog/monolog -vvv
随便找个目录, 执行上面的命令, 会看到这些东西:
上一篇文章 提到的哈希值, 将会在这篇文章揭晓, 看完这篇文章, 也将会清楚地了解 Composer 镜像的工作原理.
认识 Composer 镜像的工作原理之前, 先来认识一个非常好用的参数 -vvv
:
composer require monolog/monolog -vvv
随便找个目录, 执行上面的命令, 会看到这些东西:
有使用PHP组件的朋友, 应该会注意到组件里头会有一个文件 composer.json
, 它描述了组件的信息: 名称, 描述, 关键词, 作者, GitHub仓库地址...还有它所依赖的子组件, 是 Composer
工作的核心.
拿一个大家都知道的日志组件 monolog 的 composer.json
为例, 我说下一些比较重要的字段:
Composer
是 PHP 的依赖管理工具, 你可以在项目的 composer.json
文件中声明所依赖的组件, 它将自动为你安装.
命令行窗口下执行 php -v
检查是否已经正确安装 PHP, 如果没有安装, 安装它, 再把路径加到环境变量 PATH
中.
装完 PHP 再依次执行一下3条命令:
我的电脑是 Ubuntu 14.04 LTS
, 自己手工编译 php5.6
, 打开 ZEND_EXTRA_LIBS='-liconv'
时, 发现没有安装 libiconv
, 也就是编码转换的库, 所以百度该库的安装方法, 如下:
$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
$ tar -zxvf libiconv-1.14.tar.gz
$ cd libiconv-1.14.1
本文于 2017-12-05 重新整理.
写了一个可以对 $_GET
, $_POST
等输入进行过滤的函数,递归实现如下:
function array_map_recursive($filters, $data)
{
$result = [];
foreach ($filters as $filter)
{
foreach ($data as $key => $value)
{
$result[$key] = is_array($value)
? array_map_recursive($filters, $value)
: call_user_func($filter, $value);
}
}
return $result;
}