Je viens de mettre à jour Laravel de 5.0 à 5.1.
Je reçois cette erreur:
Call to undefined method Illuminate\Foundation\Application::bindShared()
Donc, après quelques recherches, je dois changer bindShared en singleton.
Je peux le faire dans vendeur/illuminate/html/HtmlServiceProvider.php
Le problème est de savoir ce qui se passe lorsqu'un autre développeur travaille sur le projet et effectue une installation par le composeur ou se déploie sur un serveur.
Comment puis-je conserver les modifications apportées aux fichiers du dossier du fournisseur?
Ok, sur la base de votre commentaire, je vois votre problème (j'aurais dû le remarquer plus tôt, car vous mentionnez le composant HTML dans votre question.
Le composant illuminate/html
ne fait plus partie de Laravel proprement dit et n'a pas encore été mis à jour pour se conformer aux normes 5.1. En fait, je suis à peu près sûr qu'il est maintenant officiellement abandonné par Taylor.
Cependant, vous pouvez remplacer l'exigence illuminate/html
par laravelcollective/html - qui constitue la prise de contrôle officielle de illuminate/html par la communauté et devrait constituer un remplacement immédiat.
Pas besoin de jouer avec des choses dans vendor
!
Illuminate/html
est abandonné. Utilisez Collective/html
à la place.
Pour l’installer, utilisez ce qui suit
composer require "laravelcollective/html":"^5.2.0"
Puis, dans le fichier app/app.php, changez/ajoutez comme suit
pour les fournisseurs
Collective\Html\HtmlServiceProvider::class
et pour les alias
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
Ce problème est dû à la méthode bindShared (), remplacez-le simplement par singleton ()
le fichier se trouve ici: /projectname/vendor/illuminate/html/HtmlServiceProvider.php
changement sur la ligne no: 36 et 49
Je suis développeur Rails et nouveau sur laravel & c'est juste mon premier jour et je me suis retrouvé coincé dans ce problème Form Builder. J'ai traversé de nombreuses discussions et publications, mais ma solution est sur https://laravelcollective.com/docs/5.0/html Pour utiliser le générateur de formulaire de lame (Form :: open), nous avons besoin pour changer notre composer.json et ajouter "laravelcollective/html": "~5.0"
dans le bloc require . Puis lancez composer update car seules les nouvelles dépendances seront disponibles pour votre projet . Ajoutez maintenant 'Collective\Html\HtmlServiceProvider ', dans le bloc config/app.php des fournisseurs, vous devez également ajouter
'aliases' => [
// ...
'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',
// ...
],
dans config/app.php dans le bloc d’alias.
lancez php artisan serve Profitez du constructeur de formulaire avec le moteur lame.
Les fonctions Laravel suivantes sont obsolètes et seront supprimé entièrement avec la sortie de Laravel 5.2 en décembre 2015: ...
La méthode bindShared du conteneur de service est déconseillée de la méthode singleton. ...
ref: https://laravel.com/docs/5.1/upgrade
Ainsi, par exemple, à partir de L5.1, vous pouvez modifier en toute sécurité:
$this->app->bindShared(UserObserver::class, function ()
{
// ...
});
à:
$this->app->singleton(UserObserver::class, function ()
{
// ...
});