Laravel 5: 安装 Form 和 HTML 类 没有作曲家
Laravel 5: Installing Form and HTML classes without composer
我有兴趣在没有作曲家的情况下在 Laravel 5 上安装 Form 和 HTML 类。
我该怎么做?
对于那些想说服我使用 composer 的人:
1) 我想通过自己至少手动操作一次来了解它的作用。
2) 我的主机上没有作曲家。
3) 使用composer.phar 抛出错误:Script php artisan clear-compiled handling the pre-update-cmd event returned with an error
,给出警告:Warning: Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI
和运行时异常,错误输出为空白。
正在安装laracollective/html:
1) 从 extension's git repository
下载压缩包
2) 解压缩内容并创建此目录结构:laravelcollective/html/{contents of html-5.1 directory}
3) 将此结构复制到 Laravel 安装中的 vendor 文件夹。
4) 在 vendor/composer/autoload_classmap.php
添加这些行
'Collective\Html\FormBuilder' => $vendorDir . '/laravelcollective/html/src/FormBuilder.php',
'Collective\Html\FormFacade' => $vendorDir . '/laravelcollective/html/src/FormFacade.php',
'Collective\Html\HtmlBuilder' => $vendorDir . '/laravelcollective/html/src/HtmlBuilder.php',
'Collective\Html\HtmlFacade' => $vendorDir . '/laravelcollective/html/src/HtmlFacade.php',
'Collective\Html\HtmlServiceProvider' => $vendorDir . '/laravelcollective/html/src/HtmlServiceProvider.php',
之后
'ClassPreloader\Parser\NodeTraverser' => $vendorDir . '/classpreloader/classpreloader/src/Parser/NodeTraverser.php',
以便 Laravel 知道在请求时在哪里寻找这些 classes。
5) 将此行作为最后一个元素添加到 vendor/composer/autoload_files.php
中的 return array(...)
$vendorDir . '/laravelcollective/html/src/helpers.php',
6) 将此行添加到 vendor/composer/autoload_psr4.php
中的 return array(...)
// 'Doctrine\Instantiator\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
'Collective\Html\' => array($vendorDir . '/laravelcollective/html/src'),
// 'ClassPreloader\' => array($vendorDir . '/classpreloader/classpreloader/src'),
7) 添加提供商到 config/app 的提供商数组。php:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
8) 将两个class别名添加到config/app的别名数组中。php:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
参考文献:
我有兴趣在没有作曲家的情况下在 Laravel 5 上安装 Form 和 HTML 类。 我该怎么做?
对于那些想说服我使用 composer 的人:
1) 我想通过自己至少手动操作一次来了解它的作用。
2) 我的主机上没有作曲家。
3) 使用composer.phar 抛出错误:Script php artisan clear-compiled handling the pre-update-cmd event returned with an error
,给出警告:Warning: Composer should be invoked via the CLI version of PHP, not the cgi-fcgi SAPI
和运行时异常,错误输出为空白。
正在安装laracollective/html:
1) 从 extension's git repository
下载压缩包2) 解压缩内容并创建此目录结构:laravelcollective/html/{contents of html-5.1 directory}
3) 将此结构复制到 Laravel 安装中的 vendor 文件夹。
4) 在 vendor/composer/autoload_classmap.php
添加这些行
'Collective\Html\FormBuilder' => $vendorDir . '/laravelcollective/html/src/FormBuilder.php',
'Collective\Html\FormFacade' => $vendorDir . '/laravelcollective/html/src/FormFacade.php',
'Collective\Html\HtmlBuilder' => $vendorDir . '/laravelcollective/html/src/HtmlBuilder.php',
'Collective\Html\HtmlFacade' => $vendorDir . '/laravelcollective/html/src/HtmlFacade.php',
'Collective\Html\HtmlServiceProvider' => $vendorDir . '/laravelcollective/html/src/HtmlServiceProvider.php',
之后
'ClassPreloader\Parser\NodeTraverser' => $vendorDir . '/classpreloader/classpreloader/src/Parser/NodeTraverser.php',
以便 Laravel 知道在请求时在哪里寻找这些 classes。
5) 将此行作为最后一个元素添加到 vendor/composer/autoload_files.php
return array(...)
$vendorDir . '/laravelcollective/html/src/helpers.php',
6) 将此行添加到 vendor/composer/autoload_psr4.php
return array(...)
// 'Doctrine\Instantiator\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
'Collective\Html\' => array($vendorDir . '/laravelcollective/html/src'),
// 'ClassPreloader\' => array($vendorDir . '/classpreloader/classpreloader/src'),
7) 添加提供商到 config/app 的提供商数组。php:
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
8) 将两个class别名添加到config/app的别名数组中。php:
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
参考文献: