Laravel Call to undefined method Illuminate\Html\HtmlServiceProvider::style()` - php

I'm using the laravel 5.1 framework on my centos6 host. I already used composer install illuminate/html, but calling HTML::style() results in this error: FatalErrorException in 7b06fa36a7460c71e5daf57645a3dbda line 12: Call to undefined method Illuminate\Html\HtmlServiceProvider::style()
My app config :
'aliases' => [
//more...
'HTML' => Illuminate\Html\HtmlServiceProvider::class,
'Form' => Illuminate\Html\FormFacade::class
],
'providers' => [
//more...
Illuminate\View\ViewServiceProvider::class,
Illuminate\Html\HtmlServiceProvider::class,
]
composer.json:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.*",
"illuminate/html": "5.*"
},
Such as {!! Form::open() !!} ... is well except HTML::style().
What should I do?

You have aliased invalid class.
Replace
'HTML' => Illuminate\Html\HtmlServiceProvider::class,
with
'HTML' => Illuminate\Html\HtmlFacade::class,

terminal
composer require "laravelcollective/html":"^5.2.0"
Next, add your new provider to the providers array of config/app.php:
'providers' => [
Collective\Html\HtmlServiceProvider::class,
],
Finally, add two class aliases to the aliases array of config/app.php:
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,

If using Laravel 5 these have been moved and are now depreciated, and are no longer in the core.
They are now part of the Laravel Collective
Read here for what you should be using, and how to intall
https://laravelcollective.com/docs/5.2/html

Related

Laravel - PHP - Installing HTML packages via composer failed

I'm learning Laravel PHP and I was trying to display some contents like images and audio in a PHP webpage. However, it didn't display any images but only plain texts. So I tried to install some HTML packages by pasting some lines of codes to composer.json file and app.php file like what they said in Undefined namespace html (adding a css file to blade) laravel. After running XAMPP, I obtained an error:
Class "Illuminate\Html\HtmlServiceProvider" not found
My PHP version is 8.0.8 (latest) and my Laravel version is 8.52.0
Here is my require in composer.json:
"require": {
"php": "^7.3|^8.0",
"fideloper/proxy": "^4.4",
"fruitcake/laravel-cors": "^2.0",
"guzzlehttp/guzzle": "^7.0.1",
"laravel/framework": "^8.40",
"laravel/tinker": "^2.5",
"illuminate/html": "~5.0"
},
And here is the app.php one:
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Auth\AuthServiceProvider::class,
Illuminate\Broadcasting\BroadcastServiceProvider::class,
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Cache\CacheServiceProvider::class,
Illuminate\Foundation\Providers\ConsoleSupportServiceProvider::class,
Illuminate\Cookie\CookieServiceProvider::class,
Illuminate\Database\DatabaseServiceProvider::class,
Illuminate\Encryption\EncryptionServiceProvider::class,
Illuminate\Filesystem\FilesystemServiceProvider::class,
Illuminate\Foundation\Providers\FoundationServiceProvider::class,
Illuminate\Hashing\HashServiceProvider::class,
//Collective\Html\HtmlServiceProvider::class,
//Illuminate\Html\HtmlServiceProvider::class,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Notificadtions\NotificationServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
/*
'aliases' => [
'App' => Illuminate\Support\Facades\App::class,
'Arr' => Illuminate\Support\Arr::class,
'Artisan' => Illuminate\Support\Facades\Artisan::class,
'Auth' => Illuminate\Support\Facades\Auth::class,
'Blade' => Illuminate\Support\Facades\Blade::class,
'Broadcast' => Illuminate\Support\Facades\Broadcast::class,
'Bus' => Illuminate\Support\Facades\Bus::class,
'Cache' => Illuminate\Support\Facades\Cache::class,
'Config' => Illuminate\Support\Facades\Config::class,
'Cookie' => Illuminate\Support\Facades\Cookie::class,
'Crypt' => Illuminate\Support\Facades\Crypt::class,
'Date' => Illuminate\Support\Facades\Date::class,
'DB' => Illuminate\Support\Facades\DB::class,
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
'Event' => Illuminate\Support\Facades\Event::class,
'File' => Illuminate\Support\Facades\File::class,
'Form'=> Illuminate\Html\FormFacade::class,
'Gate' => Illuminate\Support\Facades\Gate::class,
'Hash' => Illuminate\Support\Facades\Hash::class,
'Html'=> Illuminate\Html\HtmlFacade::class,
'Http' => Illuminate\Support\Facades\Http::class,
'Lang' => Illuminate\Support\Facades\Lang::class,
'Log' => Illuminate\Support\Facades\Log::class,
'Mail' => Illuminate\Support\Facades\Mail::class,
'Notification' => Illuminate\Support\Facades\Notification::class,
'Password' => Illuminate\Support\Facades\Password::class,
'Queue' => Illuminate\Support\Facades\Queue::class,
'RateLimiter' => Illuminate\Support\Facades\RateLimiter::class,
'Redirect' => Illuminate\Support\Facades\Redirect::class,
// 'Redis' => Illuminate\Support\Facades\Redis::class,
'Request' => Illuminate\Support\Facades\Request::class,
'Response' => Illuminate\Support\Facades\Response::class,
'Route' => Illuminate\Support\Facades\Route::class,
'Schema' => Illuminate\Support\Facades\Schema::class,
'Session' => Illuminate\Support\Facades\Session::class,
'Storage' => Illuminate\Support\Facades\Storage::class,
'Str' => Illuminate\Support\Str::class,
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,
],
Please help!
Do not take this as an attack to you, but I get really frustrated seeing this questions over and over again...
If you have any problems with a package, ALWAYS go to the source of truth... In this case it would be Packagist (it is the official "source" for composer packages) and it will tell you where it comes from and more...
So, if you do that, it will get you here and you will see a beautiful red legend saying:
This package is abandoned and no longer maintained. The author suggests using the laravelcollective/html package instead.
So, you click that recommended package and you got to a new Packagist page, showing the main repo on the right side (github). When you go to that page, you can see a main page in the readme, so you go there.
In that page, the first thing you will see is the documentation related to it, and the first "element" it shows is HTML, the one you want to use (showing you the available doc's versions for laravelcollective/html)...
So you click on that one and see how it is to just use that class/helper/service...
One more thing, as the repo or the main page does not say the Laravel versions it support, always check the source code's composer file. You will see it requires some illuminate/xxxx: ^6.0|^7.0|^8.0, that means that the current Laravel supported version is >= 6.x but not <= 5.8. So Laravel 8 is supported.
That check works for any package that has a constraint with a Laravel version. If you don't see any of that, then it should be usable by any Laravel version...
For .css and .js files, you may want to just put them into public/css and public/js folder and then include them in Bladeview templates in your resources/views folder. Them you return this Blade view via the help of controller and view() helper. For more information please consult Laravel document

Parse error when run illuminate/database/capsule with bootEloquent() in PHP

I'm trying to make a mysql connection within a php environment using Slim and the package illuminate/database. Following the documentation I have created a new $capsule instance, I have passed the array with connection data through the addConnection method and then I have run bootEloquent() method:
<?php
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => $app->config->get('db.driver'),
'host' => $app->config->get('db.host'),
'database' => $app->config->get('db.database'),
'username' => $app->config->get('db.username'),
'password' => $app->config->get('db.password'),
'charset' => $app->config->get('db.charset'),
'collation' => $app->config->get('db.collation'),
'prefix' => $app->config->get('db.prefix')
]);
#here the output seems correct...
#var_dump($capsule);
$capsule->bootEloquent();
?>
Unfortunately when I run bootEloquent() it goes through an error:
Parse error: parse error in
/Sites/auth/vendor/illuminate/database/Eloquent/Model.php
on line 597
The problem seems related to the Eloquent Model.
I have already tried to update the composer.json file with different versions. I have also installed again each package, but the parse error still remains.
Currently the project is running on: PHP Version 5.6.30.
My current composer json file with all dependencies
{
"autoload": {
"psr-4": {
"Business\\": "app/Business"
}
},
"require": {
"slim/slim": "~2.0",
"slim/views": "0.1.*",
"twig/twig": "~1.0",
"phpmailer/phpmailer": "~5.2",
"hassankhan/config": "0.8.*",
"illuminate/database": "~5.0",
"alexgarrett/violin": "2.*",
"ircmaxell/random-lib": "~1.1"
}
}
Can someone explain me why I'm getting this strange bad situation?
Thanks in advance.
Have a look at your composer.lock to see which version of illuminate/database got installed. The later ones are not compatible with PHP 5.6.30, but require PHP 7. You could try to enforce that version constraint through "illuminate/database": "~5.4.0"

Laravel 5.2 upgrade - class AuthServiceProvider not found

I'm currently spending time to upgrade my project from Laravel 4.2 to Laravel 5.2.
After lots of troubles I managed to get a 5.1 version running correctly so I started the 5.1 to 5.2 procedure as described in the official docs: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0
After the first step, my composer.json looks like this:
"require": {
"laravel/framework": "5.2.*",
"illuminate/html": "5.*",
"andywer/js-localization": "dev-laravel-5",
"laracasts/flash" : "~1.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0"
},
"autoload": {
"classmap": [
"database",
"app/Models",
"app/Http/Controllers"
],
"psr-4": {
"App\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
I also updated the app.php config to delete ArtisanServiceProvider and ControllerServiceProvider in the providers section.
My app.php config looks like this:
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
|--------------------------------------------------------------------------
|
| The service providers listed here will be automatically loaded on the
| request to your application. Feel free to add your own services to
| this array to grant expanded functionality to your applications.
|
*/
'providers' => array(
/*
* Laravel Framework Service Providers...
*/
'Illuminate\Auth\AuthServiceProvider',
'Illuminate\Broadcasting\BroadcastServiceProvider',
'Illuminate\Bus\BusServiceProvider',
'Illuminate\Cache\CacheServiceProvider',
'Illuminate\Foundation\Providers\ConsoleSupportServiceProvider',
'Illuminate\Cookie\CookieServiceProvider',
'Illuminate\Database\DatabaseServiceProvider',
'Illuminate\Encryption\EncryptionServiceProvider',
'Illuminate\Filesystem\FilesystemServiceProvider',
'Illuminate\Foundation\Providers\FoundationServiceProvider',
'Illuminate\Hashing\HashServiceProvider',
'Illuminate\Mail\MailServiceProvider',
'Illuminate\Pagination\PaginationServiceProvider',
'Illuminate\Pipeline\PipelineServiceProvider',
'Illuminate\Queue\QueueServiceProvider',
'Illuminate\Redis\RedisServiceProvider',
'Illuminate\Auth\Passwords\PasswordResetServiceProvider',
'Illuminate\Session\SessionServiceProvider',
'Illuminate\Translation\TranslationServiceProvider',
'Illuminate\Validation\ValidationServiceProvider',
'Illuminate\View\ViewServiceProvider',
/*
* Application Service Providers...
*/
'App\Providers\AppServiceProvider',
'App\Providers\AuthServiceProvider',
'App\Providers\EventServiceProvider',
'App\Providers\RouteServiceProvider',
// LIBS TIERCE
JsLocalization\JsLocalizationServiceProvider::class,
'Laracasts\Flash\FlashServiceProvider',
),
/*
|--------------------------------------------------------------------------
| Service Provider Manifest
|--------------------------------------------------------------------------
|
| The service provider manifest is used by Laravel to lazy load service
| providers which are not needed for each request, as well to keep a
| list of all of the services. Here, you may set its storage spot.
|
*/
'manifest' => storage_path().'/meta',
/*
|--------------------------------------------------------------------------
| Class Aliases
|--------------------------------------------------------------------------
|
| This array of class aliases will be registered when this application
| is started. However, feel free to register as many as you wish as
| the aliases are "lazy" loaded so they don't hinder performance.
|
*/
'aliases' => array(
'App' => Illuminate\Support\Facades\App::class,
'Artisan' => Illuminate\Support\Facades\Artisan::class,
'Auth' => Illuminate\Support\Facades\Auth::class,
'Blade' => Illuminate\Support\Facades\Blade::class,
'Cache' => Illuminate\Support\Facades\Cache::class,
'Config' => Illuminate\Support\Facades\Config::class,
'Cookie' => Illuminate\Support\Facades\Cookie::class,
'Crypt' => Illuminate\Support\Facades\Crypt::class,
'DB' => Illuminate\Support\Facades\DB::class,
'Eloquent' => Illuminate\Database\Eloquent\Model::class,
'Event' => Illuminate\Support\Facades\Event::class,
'File' => Illuminate\Support\Facades\File::class,
'Gate' => Illuminate\Support\Facades\Gate::class,
'Hash' => Illuminate\Support\Facades\Hash::class,
'Lang' => Illuminate\Support\Facades\Lang::class,
'Log' => Illuminate\Support\Facades\Log::class,
'Mail' => Illuminate\Support\Facades\Mail::class,
'Password' => Illuminate\Support\Facades\Password::class,
'Queue' => Illuminate\Support\Facades\Queue::class,
'Redirect' => Illuminate\Support\Facades\Redirect::class,
'Redis' => Illuminate\Support\Facades\Redis::class,
'Request' => Illuminate\Support\Facades\Request::class,
'Response' => Illuminate\Support\Facades\Response::class,
'Route' => Illuminate\Support\Facades\Route::class,
'Schema' => Illuminate\Support\Facades\Schema::class,
'Session' => Illuminate\Support\Facades\Session::class,
'Storage' => Illuminate\Support\Facades\Storage::class,
'URL' => Illuminate\Support\Facades\URL::class,
'Validator' => Illuminate\Support\Facades\Validator::class,
'View' => Illuminate\Support\Facades\View::class,
'Form' => 'Illuminate\Html\FormFacade',
'HTML' => 'Illuminate\Html\HtmlFacade',
// FAÇADES TIERCES
'Flash' => 'Laracasts\Flash\Flash'
),
Of course, I cleared the config cache in bootstrap/cache and I tried everything I could to make it work but every time I run composer update I get this error now:
> php artisan clear-compiled
[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'App\Providers\AuthServiceProvider' not found
Script php artisan clear-compiled handling the post-update-cmd event returned with an error
[RuntimeException]
Error Output:
worse than this, I can't run any artisan command or pages of my application. I keep getting this error any time I run some php in this project !
This is some moves I tried:
Delete all caches including config cache and services.json (impossible to regenerate them because of the error in artisan commands)
delete the vendor folder and re-run composer update
delete the 'Illuminate\Auth\AuthServiceProvider', line from app.php config
None of this worked and I'm running out of fresh ideas.
I have read and re-read the upgrade guide of the official docs and nothing seems to be related to this issue...
I'm still struggling with all that psr-4 / namespace thing in Laravel and I sense it can be caused something like that but can't figure out what exactly...
Do you have this service provider in place App\Providers\AuthServiceProvider in the /app/Providers folder
If not copy it from here and fix the namespace
https://github.com/laravel/laravel/blob/master/app/Providers/AuthServiceProvider.php
update
'Form' => 'Illuminate\Html\FormFacade',
'HTML' => 'Illuminate\Html\HtmlFacade',
// FAÇADES TIERCES
'Flash' => 'Laracasts\Flash\Flash'
I think those are causing your issues, try running it without those and check if these packages are 5.2 compatible. I also think that the Html component have been removed from the 5.* they should be maintained by collective so what you would need to do is to add the following rather than the Illuminate
'Form' => 'Collective\Html\FormFacade',
'Html' => 'Collective\Html\HtmlFacade',
Visit Laravel Collectives for more info
Try putting below string inside inverted commas as follows, and try again
'JsLocalization\JsLocalizationServiceProvider::class',

Laravel 5.2 - Adding laravelcollective/html 5.2 throws errors

I'm using Laravel v5.2 and have followed the instructions below to install laravelcollective/html, but it still throws errors:
Browser: FatalErrorException in ProviderRepository.php line 119: Call to undefined method Collective\Html\FormFacade::isDeferred()
Artisan: [Symfony\Component\Debug\Exception\FatalErrorException] Call to undefined method Collective\Html\FormFacade::isDeferred()
Also tried 5.2.*-dev, but get the same errors.
Hope someone can help!
Command:
composer require laravelcollective/html
Added to composer.json "require" group:
"laravelcollective/html": "5.2.*"
composer update
Added to config/app.php in providers group:
Collective\Html\HtmlServiceProvider::class,
In aliases group:
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
I hope it is not too late, but maybe answer on your question will be useful for a future reference. So, here is step by step:
1) In the root of your laravel package open composer.json file in "require" group should be added this line:
"laravelcollective/html": "5.2.*"
It should look similar to:
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.",
"laravelcollective/html": "5.2."
},
2) Open command prompt or Git Bash and update the composer with command:
composer update
The composer will update within about one or two minutes.
3) Open config/app.php add this line in providers group:
Collective\Html\HtmlServiceProvider::class,
and don't forget to separate the previous class by comma. It should look like:
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
4) In the same file in aliases group add these alias:
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
so it should look like:
'View' => Illuminate\Support\Facades\View::class,
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
I hope this will help to anyone who use Laravel 5.2.*

Laravel 5.1 adding Form And Html Classes

I am new to Laravel and using Laravel 5.1.
FatalErrorException in 88e08cd08566357f572303974c44bc50 line 4: Class
'Form' not found.
For the above exception I did some changes in my project:
. "require": {
"php": ">=5.5.9",
"laravel/framework": "5.1.",
"laravelcollective/html": "5.1."
},
Added in JSON and updated the JSON file.
In config/app.php:
'providers' => [ // ... Collective\Html\HtmlServiceProvider::class, // ... ],
In config/app.php:
'aliases' => [ // ... 'Form' => Collective\Html\FormFacade::class, 'Html' => Collective\Html\HtmlFacade::class, // ... ],
I have added this aliases, but it's still showing the above error. Please can anyone help me?
just you have to autoload your composer file.Reason is you added new class to required array in composer.
composer dump-autoload
Source and help for composer

Categories