3

我有兴趣在没有作曲家的情况下在 Laravel 5 上安装 Form 和 HTML 类。我怎样才能做到这一点?

对于那些想说服我使用作曲家的人:

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和运行时异常,错误输出为空白。

4

1 回答 1

5

安装 laracollective/html:

1)从扩展的 git 存储库下载 zip 包

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 在请求时知道在哪里查找这些类。

5)将此行作为最后一个元素添加到return array(...)invendor/composer/autoload_files.php

$vendorDir . '/laravelcollective/html/src/helpers.php',

6)将此行添加return array(...)vendor/composer/autoload_psr4.php

// '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)在config/app.php的aliases数组中添加两个类别名:

'aliases' => [
// ...
  'Form' => Collective\Html\FormFacade::class,
  'Html' => Collective\Html\HtmlFacade::class,
// ...

],

参考:

http://laravelcollective.com/docs/5.1/html

于 2015-09-19T13:11:25.127 回答