PHP 社区提供了很多 Package ... 我们可以在自己的项目里使用这些 Package 提供的功能 .. 这些包,你可以在 packagist.org 这个网站上找到 .. 你也可以把自己创建的 Packge 发布到这个网站上,跟大家分享你的作品 ..
可以先搜索一下要使用的 package ... 比如 monolog .. 打开这个 packge 的页面 ... 上面会显示详细的信息 .. 一段简单的介绍 .. 下面还会出现这个包依赖的一些东西 ..
就是如果你想在项目里使用 monolog 这个包的功能,除了要安装这个包以外,你还得把它依赖的这些东西也要安装到项目上 .. composer 可以帮我们做这些事 ..
下面还有使用的详细的说明 .. 下面可以试一下,在项目里用一下这个包 .. 打开命令行 ... 在项目所在的目录的下面 .. 用一下 composer require 这个命令 .. 后面加上包的名字 .. monolog/monolog ..
composer 会帮我们下载这个包 ... 还有它的所有的依赖 ..
注意最后,会输出一个 Writing lock file .. 还有 Generating autoload files ..
回到项目.. 先打开 composer.json 看一下 .... 这个配置文件里的 require 里面,会出现项目的依赖,这里就是刚才我们安装的 monolog 这个 packge ..
在项目的根目录的下面,
会多了一个 composer.lock 文件 .. Composer 会把项目安装的包的具体的版本放到这个文件里记录一下 .. 这个文件你要把它放在项目的版本控制里 ..
再看一下 vendor 目录 .. 刚才下载的 monolog 会在这个目录的下面 ... 另外还有 monolog 依赖的其它的东西,也会被放到这个目录的下面 ..
然后打开这个 composer 目录 .. autoload_psr4.php ... 你会发现 .. 除了我们自己注册的 App 这个自动加载 .. 现在又多了一个 PSR\\Log .. 还有一个 MonoLog .. 这些应该就是 Composer 根据刚才安装的 Package 给我们又注册的这些自动加载 ..
也就是我们在自己的项目里,可以直接使用这些包提供的功能 ..
演示
我们可以去试一下 ... 打开 index.php .. 这里我们用一下 Monolog\Logger ... 还有 Monolog\Handler\StreamHandler ..
Monolog 是记录日志用的,它可以把日志放到文件,数据库,浏览器,或者各种 Web 服务上 ..
StreamHandler 这个 Handler ,就可以让我们把日志放到文件里保存 ..
先新建一个 Logger ... $log 等于 new Logger ... 日志的名字是 ninghao .. 再用一下 $log 的 pushHandler .. 指定一下这个日志用的 Handler ... 新建一个 StreamHandler .. 设置一下日志文件的目录 .. app/log/demo.log .. Logger 的类型是 DEBUG ,表示调试 ..
下面再添加一条日志 ... 用一下 $log 的 info ... 日志的信息是 hello ~ logger.
保存 ... 回到命令行 ... 执行一下 php index.php ...
再回到项目 .. 在 app/log 下面,会有一个 demo.log ,这个文件里面的东西就是我们用 MonoLog 这个包提供的功能记录的一条日志 ...
分享项目
在项目的版本控制里 .. 我们忽略掉了 vendor 这个目录 .. 因为这个目录里的东西,Composer 可以根据 composer.json 还有 composer.lock 自动给我们生成 ..
回到命令行 ... 可以先删除掉 vendor 这个目录 ...
然后执行一下 composer install ...
完成以后,你会发现, 刚才删掉的 vendor 目录又回来了 ...