Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Composer提供了哪些Git子模块没有的功能?_Php_Git_Composer Php_Git Submodules - Fatal编程技术网

PHP Composer提供了哪些Git子模块没有的功能?

PHP Composer提供了哪些Git子模块没有的功能?,php,git,composer-php,git-submodules,Php,Git,Composer Php,Git Submodules,我正在从事一个使用Composer()引用各种PHP库的项目 我还使用git子模块()引用各种JavaScript库(这些库指向特定的发布标签,例如“v1.2.34”) 为了简化项目,我正在考虑放弃Composer,而只使用子模块,除非Composer提供Git子模块所没有的特性。那么,PHP Composer提供了哪些Git子模块不提供的功能?坚持使用Composer的一个原因是: 对于指定自动加载信息的库,Composer将生成一个vendor/autoload.php文件。您只需包含此文件

我正在从事一个使用Composer()引用各种PHP库的项目

我还使用git子模块()引用各种JavaScript库(这些库指向特定的发布标签,例如“v1.2.34”)


为了简化项目,我正在考虑放弃Composer,而只使用子模块,除非Composer提供Git子模块所没有的特性。那么,PHP Composer提供了哪些Git子模块不提供的功能?

坚持使用Composer的一个原因是:

对于指定自动加载信息的库,Composer将生成一个
vendor/autoload.php
文件。您只需包含此文件,即可免费自动加载

require 'vendor/autoload.php';
这使得使用第三方代码变得非常容易。例如:如果您的项目依赖于monolog,您可以从中开始使用类,它们将自动加载

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler(
    'app.log',
    Monolog\Logger::WARNING
));

$log->addWarning('Foo');
您甚至可以通过向
composer.json
添加一个
autoload
字段,将自己的代码添加到自动加载程序中

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}
Composer将为
Acme
命名空间注册一个PSR-4自动加载器

同样,Composer也处理依赖项。也就是说,如果要使用库
X
,并且它取决于库
Y
Z
,Composer将安装这三个库


Composer,例如“使用最新的1.2.x版本”,它是使用现代PHP时事实上的标准工具。

坚持使用Composer的一个原因是:

对于指定自动加载信息的库,Composer将生成一个
vendor/autoload.php
文件。您只需包含此文件,即可免费自动加载

require 'vendor/autoload.php';
这使得使用第三方代码变得非常容易。例如:如果您的项目依赖于monolog,您可以从中开始使用类,它们将自动加载

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler(
    'app.log',
    Monolog\Logger::WARNING
));

$log->addWarning('Foo');
您甚至可以通过向
composer.json
添加一个
autoload
字段,将自己的代码添加到自动加载程序中

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}
Composer将为
Acme
命名空间注册一个PSR-4自动加载器

同样,Composer也处理依赖项。也就是说,如果要使用库
X
,并且它取决于库
Y
Z
,Composer将安装这三个库


Composer,例如“使用最新的1.2.x版本”,它是使用现代PHP时事实上的标准工具。

坚持使用Composer的一个原因是:

对于指定自动加载信息的库,Composer将生成一个
vendor/autoload.php
文件。您只需包含此文件,即可免费自动加载

require 'vendor/autoload.php';
这使得使用第三方代码变得非常容易。例如:如果您的项目依赖于monolog,您可以从中开始使用类,它们将自动加载

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler(
    'app.log',
    Monolog\Logger::WARNING
));

$log->addWarning('Foo');
您甚至可以通过向
composer.json
添加一个
autoload
字段,将自己的代码添加到自动加载程序中

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}
Composer将为
Acme
命名空间注册一个PSR-4自动加载器

同样,Composer也处理依赖项。也就是说,如果要使用库
X
,并且它取决于库
Y
Z
,Composer将安装这三个库


Composer,例如“使用最新的1.2.x版本”,它是使用现代PHP时事实上的标准工具。

坚持使用Composer的一个原因是:

对于指定自动加载信息的库,Composer将生成一个
vendor/autoload.php
文件。您只需包含此文件,即可免费自动加载

require 'vendor/autoload.php';
这使得使用第三方代码变得非常容易。例如:如果您的项目依赖于monolog,您可以从中开始使用类,它们将自动加载

$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler(
    'app.log',
    Monolog\Logger::WARNING
));

$log->addWarning('Foo');
您甚至可以通过向
composer.json
添加一个
autoload
字段,将自己的代码添加到自动加载程序中

{
    "autoload": {
        "psr-4": {"Acme\\": "src/"}
    }
}
Composer将为
Acme
命名空间注册一个PSR-4自动加载器

同样,Composer也处理依赖项。也就是说,如果要使用库
X
,并且它取决于库
Y
Z
,Composer将安装这三个库


Composer也是,例如“使用最新的1.2.x版本”,这是使用现代PHP时事实上的标准工具。

它们都进行版本控制,但Composer也自动处理版本依赖关系(iirc)。对于初学者来说,Git子模块是一个可怕的麻烦。我不认为这个问题主要是基于观点的。“优点”这个词有点夸张,但Composer和Git子模块之间存在客观上的差异,OP想知道它们是什么。它们都进行版本控制,但Composer也自动处理版本依赖关系(iirc)。Git子模块是一个可怕的麻烦,首先,我不认为这个问题主要是基于观点的。“优点”这个词有点夸张,但Composer和Git子模块之间存在客观上的差异,OP想知道它们是什么。它们都进行版本控制,但Composer也自动处理版本依赖关系(iirc)。Git子模块是一个可怕的麻烦,首先,我不认为这个问题主要是基于观点的。“优点”这个词有点夸张,但Composer和Git子模块之间存在客观上的差异,OP想知道它们是什么。它们都进行版本控制,但Composer也自动处理版本依赖关系(iirc)。Git子模块是一个可怕的麻烦,首先,我不认为这个问题主要是基于观点的。“优点”这个词有点夸张,但是Composer和Git子模块之间存在客观上的差异,OP想知道它们是什么。