为什么 Laravel Spark 安装在项目根目录中,然后符号链接到供应商?
Why is Laravel Spark being installed in project root, then symlinked into vendor?
我注意到 Laravel Spark 正在使用一个(对我来说)奇怪的模式来安装自己,我无法真正弄清楚为什么应该这样做或被认为是好的做法。
行为
鉴于我们在目录 /var/acme-spark
.
中创建了一个 Spark 应用程序
首先,Spark 安装程序会设置一个 Laravel 应用程序。之后,它将 downloads/installs 所有 Spark 文件(PHP 源代码、前端资产,如 LESS 和 JS 文件、blade 模板等)放入名为 spark
的目录中项目根目录,即 /var/acme-spark/spark
。然后更新 composer.json
以包含以下内容:
{
// ...
require: {
// ...
"laravel/spark": "*@dev"
}
// ...
"repositories": [
{
"type": "path",
"url": "./spark"
}
]
}
这基本上意味着:"Take the spark
directory and treat it as a vendor repository. Then create a symlink for the spark
directory within vendors."
符号链接确实如下所示:
user@machine:~$ cd /var/acme-spark/vendor/laravel
user@machine:/var/acme-spark/vendor/laravel$ ls -l
cashier
framework
homestead
spark -> ../../spark
令人费解的部分
现在这很令人费解,因为它使您可以完全控制 Spark 核心的所有内容,那么为什么还要使用 composer?另一方面,它使更新成为一个问题,因为您可能已经更改了一些内容并希望它们在更新期间不会被覆盖。那么为什么不使用带有私有存储库的简单 composer 包呢?
为什么会这样?这是好习惯吗?它是或不是良好做法的原因是什么?
Spark 不是作曲家包,因为它是一项高级功能,因此您必须在某处添加存储库,这样作曲家才能找到它并像普通作曲家包一样安装。
Spark 自行更新,因此可维护性由 artisan 命令完成。
关于良好做法,您如何构建文件并不重要,最终是否有效,这没有性能问题,并且可以通过不同的方式完成。
综上所述,这是因为您无法直接从 composer 下载 spark。
我注意到 Laravel Spark 正在使用一个(对我来说)奇怪的模式来安装自己,我无法真正弄清楚为什么应该这样做或被认为是好的做法。
行为
鉴于我们在目录 /var/acme-spark
.
首先,Spark 安装程序会设置一个 Laravel 应用程序。之后,它将 downloads/installs 所有 Spark 文件(PHP 源代码、前端资产,如 LESS 和 JS 文件、blade 模板等)放入名为 spark
的目录中项目根目录,即 /var/acme-spark/spark
。然后更新 composer.json
以包含以下内容:
{
// ...
require: {
// ...
"laravel/spark": "*@dev"
}
// ...
"repositories": [
{
"type": "path",
"url": "./spark"
}
]
}
这基本上意味着:"Take the spark
directory and treat it as a vendor repository. Then create a symlink for the spark
directory within vendors."
符号链接确实如下所示:
user@machine:~$ cd /var/acme-spark/vendor/laravel
user@machine:/var/acme-spark/vendor/laravel$ ls -l
cashier
framework
homestead
spark -> ../../spark
令人费解的部分
现在这很令人费解,因为它使您可以完全控制 Spark 核心的所有内容,那么为什么还要使用 composer?另一方面,它使更新成为一个问题,因为您可能已经更改了一些内容并希望它们在更新期间不会被覆盖。那么为什么不使用带有私有存储库的简单 composer 包呢?
为什么会这样?这是好习惯吗?它是或不是良好做法的原因是什么?
Spark 不是作曲家包,因为它是一项高级功能,因此您必须在某处添加存储库,这样作曲家才能找到它并像普通作曲家包一样安装。 Spark 自行更新,因此可维护性由 artisan 命令完成。
关于良好做法,您如何构建文件并不重要,最终是否有效,这没有性能问题,并且可以通过不同的方式完成。
综上所述,这是因为您无法直接从 composer 下载 spark。