原理、知识点
<h2>原理总结</h2>
<ul>
<li>
<p>最主是依靠php的spl_autoload_register()自动加载类和PSR4规范</p>
</li>
<li>
<p>执行 composer install 时,读取composer.json里配置。</p>
<ul>
<li>先去镜像网站上拉取,如果没有直接去github上拉取。</li>
<li>拉取成功后,会在当前的目录下创建一个vendor目录</li>
</ul>
</li>
<li>
<p>spl_autoload_register()使用示例</p>
<ul>
<li>在同一目录下创建三个文件test.php、UserInfo.php、Goods.php</li>
<li>UserInfo.php文件内容</li>
</ul>
<pre><code class="language-php"><?php
class UserInfo
{
public function getInfo()
{
echo '我的名字叫:张三';
}
}</code></pre>
<ul>
<li>Goods.php文件内容</li>
</ul>
<pre><code class="language-php"><?php
class Goods
{
public function getName()
{
echo '我的商品名称叫:华为手机P5';
}
}</code></pre>
<ul>
<li>test.php文件内容</li>
</ul>
<pre><code class="language-php"><?php
spl_autoload_register(function ($class) {
include './' . $class . '.php';
});
$userInfo = new UserInfo();
$userInfo->getInfo();
echo '<br />';
$goods = new Goods();
$goods->getName();</code></pre>
</li>
</ul>
<h2>composer.json和composer.lock</h2>
<ul>
<li>composer安装时,会读取composer.lock文件,进行更新依赖。</li>
<li>如果composer.lock不存在或者里面没内内容,会执行composer.json,会将最新版本的文件下载到vendor目录里,然后再去更新composer.lock文件。</li>
<li>
<p>composer官方建议把composer.lock提交到git上。每当去更新依赖的时,都是基于composer.lock去更新的。</p>
</li>
<li>composer.lock文件阻止自动获取最新版本的依赖项。
<ul>
<li>composer update 更新到最新版本,但最新类库会和你以前写的东西冲突,之前的代码不可用</li>
</ul></li>
</ul>
<h2>composer install</h2>
<ul>
<li>如有 composer.lock 文件,直接安装,否则从 composer.json 安装最新扩展包和依赖</li>
</ul>