I have an existing Laravel project that doesn't include the entire Laravel framework including Artisan CLI and its dependencies. I would like to do Migrations/Seeding for this existing Laravel project working with Artisan CLI.
What do I have to install/include in the existing Laravel project composer.json to get Laravel/Artisan CLI and its dependencies into an existing Laravel project?
Here is what my composer.json file looks like:
"require": {
"illuminate/database": "^8.61",
"illuminate/support": "^8.61",
"illuminate/http": "^8.61",
"illuminate/events": "^8.61",
"sebastiansulinski/string-converter": "^3.0",
"jenssegers/blade": "^1.2",
"swiftmailer/swiftmailer": "^6.2.1",
"nesbot/carbon": "^2.22",
"ext-openssl": "*",
"ext-json": "*",
"dyrynda/laravel-efficient-uuid": "^4.3",
"aws/aws-sdk-php": "^3.129",
"ext-curl": "*",
"whichbrowser/parser": "^2.0.42",
"spomky-labs/otphp": "^10.0",
"endroid/qr-code": "^4.3",
"twilio/sdk": "^6.16",
"laravel/tinker": "^2.7"
},
I think the package you are looking for is
"illuminate/console"
Also make sure you have artisan file in you project root directory.
If there is no artisan file then you need to create one, here is the content for the file
#!/usr/bin/env php
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/vendor/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
/*
|--------------------------------------------------------------------------
| Run The Artisan Application
|--------------------------------------------------------------------------
|
| When we run the console application, the current CLI command will be
| executed in this console and the response sent back to a terminal
| or another output device for the developers. Here goes nothing!
|
*/
$kernel = $app->make(Illuminate\Contracts\Console\Kernel::class);
$status = $kernel->handle(
$input = new Symfony\Component\Console\Input\ArgvInput,
new Symfony\Component\Console\Output\ConsoleOutput
);
/*
|--------------------------------------------------------------------------
| Shutdown The Application
|--------------------------------------------------------------------------
|
| Once Artisan has finished running, we will fire off the shutdown events
| so that any final work may be done by the application before we shut
| down the process. This is the last thing to happen to the request.
|
*/
$kernel->terminate($input, $status);
exit($status);
I'm using eclipse PDT, with CodeMix, Terminal+, Composer, and symphony. I created a Laravel project and in my composer.json I have the following dependencies:
"require" : {
"php": "^7.1.3",
"cyvelnet/laravel5-fractal": "^2.3",
"darryldecode/cart": "~4.0",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
"intervention/image": "dev-master",
"laravel/framework": "5.8.*",
"laravel/tinker": "^1.0",
"league/fractal": "^0.18.0",
"ssheduardo/redsys-laravel": "~1.3.0"
},
I also added in my app.php both the service provider
'providers' => [
#Lots of other providers here
Darryldecode\Cart\CartServiceProvider::class,
],
and the facade alias
'aliases' => [
#lots of other aliases
'Cart' => Darryldecode\Cart\Facades\CartFacade::class
],
I even published the provider php artisan vendor:publish --provider="Darryldecode\Cart\CartServiceProvider" --tag="config"
But somehow whenever I try to include the thing in any of my files either with use \Cart;, use \Darryldecode\Cart\Facades\CartFacade; or use \Darryldecode\Cart\Cart; it gives me a
The import whichever one I'm using cannot be resolved
Already tried clearing the cache, closing, and opening eclipse, deleting the project from the workspace and starting it again, uninstalling and reinstalling the cart and I don't know what else to do. Also tried Gloudemans instead and it gives me the same error.
Just using
'Cart' => Darryldecode\Cart\Cart::class,
instead of
'Cart' => Darryldecode\Cart\Facades\CartFacade::class
I solved it by manually adding the vendor folder to the builpath, foir some strange reason composer wasn't adding it.
I want to use the following package for geolocation with laravel.
https://github.com/midnite81/geolocation
I have done everything they wrote in their documentation but find an error
Midnite81\Geolocation\GeoLocationServiceProvider' not found
i am unable to solve this problem. Can't understand what's wrong. What i did, at first, write "midnite81/geolocation": "1.*" in the composer.json file.
"require": {
"php": ">=7.0.0",
"fideloper/proxy": "~3.3",
"laravel/framework": "5.5.*",
"laravel/tinker": "~1.0",
"midnite81/geolocation": "1.*"
},
After that run composer update. Then run composer dump-autoload -o. Then in the config/app.php file, put the following part in providers and aliases array.
'providers' => [
Midnite81\Geolocation\GeoLocationServiceProvider::class
];
'aliases' => [
'GeoLocation' => Midnite81\GeoLocation\Facades\GeoLocation::class,
];
then run the following command.
php artisan vendor:publish --provider="Midnite81\GeoLocation\GeoLocationServiceProvider"
Then got the error, Midnite81\Geolocation\GeoLocationServiceProvider' not found
Can't figure out what's wrong in it.
I verified and confirm the problem.
The problem is:
Midnite81\Geolocation\GeoLocationServiceProvider::class
You should change this into
Midnite81\GeoLocation\GeoLocationServiceProvider::class
Notice the difference Geolocation vs GeoLocation. It seems there is error in readme for this package on Github
I've already sent Pull request https://github.com/midnite81/geolocation/pull/2 to fix readme for this package
When I try to update our existing project from Laravel 5.1 to Laravel 5.2 using the official guide, I get an error after composer update when the post update
php artisan clear-compiled
is run. Here is the error.
Class Illuminate\Foundation\Composer does not exist
Has anyone had a similar problem? When I run composer update with the no scripts flag it updates regularly so it's a problem on the clear-compiled.
Below are my Service Providers and my composer.json file.
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,
Illuminate\Mail\MailServiceProvider::class,
Illuminate\Pagination\PaginationServiceProvider::class,
Illuminate\Pipeline\PipelineServiceProvider::class,
Illuminate\Queue\QueueServiceProvider::class,
// Illuminate\Redis\RedisServiceProvider::class,
Vetruvet\PhpRedis\PhpRedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,
Collective\Html\HtmlServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,
Intervention\Image\ImageServiceProvider::class,
Torann\GeoIP\GeoIPServiceProvider::class,
Jenssegers\Agent\AgentServiceProvider::class,
Barryvdh\Debugbar\ServiceProvider::class,
composer.json
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.2.*",
"fzaninotto/faker": "^1.6#dev",
"laravelcollective/html": "5.2.*",
"laravelcollective/remote": "~5.2",
"kriswallsmith/assetic": "^1.3#dev",
"pda/pheanstalk": "^3.0#dev",
"aws/aws-sdk-php-laravel": "~3.0",
"illuminate/http": "~5.2",
"illuminate/session": "~5.2",
"illuminate/support": "~5.2",
"nesbot/carbon": "~1.18",
"guzzlehttp/guzzle": "~5.3|~6.0",
"vetruvet/laravel-phpredis": "dev-master",
"predis/predis": "^1.1#dev",
"laravel/socialite": "^3.0#dev",
"intervention/image": "^2.3#dev",
"brightcove/api": "^1.0#dev",
"torann/geoip": "dev-master",
"graham-campbell/throttle": "~5.1",
"jenssegers/agent": "^3.0#dev"
},
"require-dev": {
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~4.0",
"phpspec/phpspec": "~2.1",
"symfony/dom-crawler": "~3.0",
"symfony/css-selector": "~3.0",
"barryvdh/laravel-debugbar": "^2.0#dev",
"laracasts/generators": "dev-master"
},
"repositories": [
{
"type": "git",
"url": "https://github.com/nardev/laravel-vzaar.git"
}
],
"autoload": {
"classmap": [
"database",
"app/Models",
"app/Footgoll"
],
"files": [
"app/helpers.php"
],
"psr-4": {
"Myapp\\": "app/"
}
},
"autoload-dev": {
"classmap": [
"tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-root-package-install": [
"php -r \"copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "dev",
"prefer-stable": true
}
When I run
grep -nH -d recurse 'Composer' bootstrap/ app/ config/
This is what is returned:
bootstrap/autoload.php:7:| Register The Composer Auto Loader
bootstrap/autoload.php:10:| Composer provides a convenient, automatically generated class loader
bootstrap/autoload.php:42:| when working locally. However we will need to load in the Composer
This is how the autoload.php file looks like:
<?php
define('LARAVEL_START', microtime(true));
/*
|--------------------------------------------------------------------------
| Register The Composer Auto Loader
|--------------------------------------------------------------------------
|
| Composer provides a convenient, automatically generated class loader
| for our application. We just need to utilize it! We'll require it
| into the script here so that we do not have to worry about the
| loading of any our classes "manually". Feels great to relax.
|
*/
require __DIR__.'/../vendor/autoload.php';
/*
|--------------------------------------------------------------------------
| Include The Compiled Class File
|--------------------------------------------------------------------------
|
| To dramatically increase your application's performance, you may use a
| compiled class file which contains all of the classes commonly used
| by a request. The Artisan "optimize" is used to create this file.
|
*/
$compiledPath = __DIR__.'/cache/compiled.php';
if (file_exists($compiledPath)) {
require $compiledPath;
}
/*
|--------------------------------------------------------------------------
| Register The Workbench Loaders
|--------------------------------------------------------------------------
|
| The Laravel workbench provides a convenient place to develop packages
| when working locally. However we will need to load in the Composer
| auto-load files for the packages so that these can be used here.
|
*/
if (is_dir($workbench = __DIR__.'/../workbench'))
{
Xtwoend\Workbench\Starter::start($workbench);
}
Could it be something about the workbench?
Update: a really horrible fix of returning the Composer.php from 5.1 to vendor/laravel/framework/src/Illuminate/Foundation lets the app function normally but I really need a better solution, one which can be pushed onto production.
The error you get is all about the packages that you use. Since the Composer class' location is changed, it is failed to get located.
From the upgrade notes:
The Illuminate\Foundation\Support\Composer class has been moved to
Illuminate\Support\Composer.
Wait for the pull requests to get accepted, for instance the laracasts/generators package, which is included within your composer.json file, is one of the packages that is not yet compatible with Laravel 5.2
https://github.com/laracasts/Laravel-5-Generators-Extended/issues/81
Thus, one of the most commonly used package where this error is occured is the cviebrock/eloquent-sluggable.
https://github.com/cviebrock/eloquent-sluggable/issues/214.
There is nothing you can but wait for the pull requests to get accepted or just edit the vendor files which is not that cool option to do.
Try
php artisan optimize --force
If error continues delete vendor/compiled.php and then run the command above
This will recreate vendor/compiled.php class.
Command above deletes two files
The bootstrap/compiled.php file. This file is created when you
optimize classes. The app/storage/meta/services.json file. This file
is created as Laravel tries to optimize the loading of the service
providers your application uses.
Source
when I ran clear-compiled it deleted the vendor/compiled.php in my project.
Since You do not have no compiled class at all you may not delete it. This must be why you are having problems. Do not bother clearing compiled classes..
I am also upgrading a huge app from 4.2 to 5.0. problems problems.. :)
The bug is being identified and discussed here :
https://github.com/laravel/framework/issues/9678
It's probably the SocialiteServiceProvider, maybe others as well.
I had this problem last night when upgrading, a lot of serviceproviders have to upgrade their code to 5.2 as well.
AdamWathan\EloquentOAuthL5\Installation seems to use the Composer class directly, remove this service provider and you can continue the upgrade.
Try this:
composer update --no-scripts
It allowed me to see a detailed explanation of why composer update failed. For me I was updating to laravel 5.2 but forgot to also update "laravelcollective/html": "5.1.*" to "laravelcollective/html": "5.2.*".
Found here https://stackoverflow.com/a/36515184/922522
Welp, I just made a new laravel app with 5.2 and added all of the code and dependencies in again, seems to be working now.
Fresh install of Laravel, trying to run anything generates a Traits error:
Trait 'Illuminate\Support\Traits\MacroableTrait' not found in /var/www/laravel/bootstrap/compiled.php
I have tried manually adding in \Traits\MacroableTrait.php and this now generates a new error:
Trait 'Illuminate\Http\ResponseTrait' not found in /home/vagrant/innovedV2API/bootstrap/compiled.php
Any ideas what's happening here?
Try to edit your composer.json in a way to put all "require" elements together, like this:
"require": {
"laravel/framework": "4.2.*",
"dompdf/dompdf" : "dev-master",
"stripe/stripe-php" : "dev-master",
"fzaninotto/faker" : "dev-master"
}
I think my error was that I have written another require block with faker, dom and stripe at the end of the file, and tried to run composer update like that.
Another error may be migrating databases before composer update, or artisan db:seed