Does Laravel autogenerates autoload files without runninq composer by user? - laravel

A strange thing happened on my server:
autoload files in vendor/composer directory were touched/regenerated without me or any other user running composer install, composer update, composer dump-autoload or any other commands. My main concern is that one of the files was generated with invalid data that crashed my whole site and it took a time to find the problem.
Are there any circumstances that Laravel does this automatically? (There may have been a network malfunction for a few minutes when this happened.) If yes, where can I read about this in the documentation? Is it possible to turn it off?

Related

Compiled Services Class Has been removed Composer error laravel 5.4

Dears whenever i want to add any Packeg using composer i face below error
"Compiled Services Class Has been removed"
I search many solution like "composer update" etc but still i face this problem
due to this error my working is stop.
kindly help me whats the original solution.
thats the composer installation problem? or what ?
The message The compiled services file has been removed. is a info message from the clear compiled command: php artisan clear-compiled.
It is called from php artisan optimize that runs on every composer update or install.
The message is only a info reporting that the file bootstrap/cache/services.php has been removed.
The services.php file will be reconstructed at the next request.
So at the end its a normal info message.
I have encountered the same problem.
Just remove the "Vendor" folder then install the composer. It worked fine for me.

forcing composer to regenerate autoloads when composer.json of a dependency is changed?

My workflow for developing Symfony bundles is the following:
install Symfony
create a git repo for the new bundle, put a composer.json file in there
require the new package in the top-level composer.json, using #dev version
composer update newpackage => the package is downloaded, using git clone
work on the git clone inside vendors, committing and pushing from it
This is all fine and dandy, but seems to break in one specific case:
if I alter the 'autoload' tag of the already-installed package, it seems that Composer has a hard time taking it into account:
I tried 'composer dumpautoload', and it does nothing
I do not want to remove the composer.lock file, as I do not want other packages to be updated to a newer version, I only want to alter the autoload config of that one package
I tried removing by hand vendor/composer/installed.json, and what happened is that Composer re-downloaded all the vendors and wiped any data which happened to be in there at that moment
The same problem manifested itself when I did alter the autoload section of the package on a separate clone, pushed the changes to git and ran 'composer update mypackage' - although that might have been related to packagist not having received the ping from github.
I can of course alter by hand the composer.lock and vendor/composer/installed.json files, but that seems too hackish. It also does not gives the guarantee that user downloading the package the 1st time will see it working.
Try:
./composer.phar dumpautoload -o
It reads the composer.json files and rewrites all the autoload files which pick up the new paths.
dumpautoload uses the package information from vendor/composer/installed.json and not the individual composer.json files. You need to change the autoload info there, too.
The file installed.json is only being update when you run a
composer update

Laravel installation tutorial says to add ~/.composer/vendor/bin to my $PATH, but it doesn't exist

I've tried a couple of methods to install laravel, including this command:
composer global require "laravel/installer=~1.1"
As far as I can tell, it installs. Certainly it creates a number of directories and files, including an app directory...
When I run laravel, I get command not found. Googling, I find that I should add ~/.composer/vendor/bin to my $PATH. The problem is that I don't have that directory. I do have ~/.composer/cache, but the cache directory is the only one I have in ~/.composer.
Any ideas on what to do? Am I missing a step? I've read a half dozen tutorials now on installing laravel. :-/
Sometimes Laravel is in the path ~/.config/composer/vendor/bin path. Try adding that path. But first make sure to go to that path and verify there is laravel.

Laravel 4 class not found after doployment to production

Error:
Class 'App\Package\PackageServiceProvider' not found
After moving my laravel directories to my server. The app is under psr-0.
The same files are found and working locally without any errors.
I tried to update composer with and without dump but nothing changes.
Why does that happen?
By default, the vendor directory is not checked into your git repository. So, just run composer install on your server and it should take care of the rest.

Laravel 4: php artisan down not defined

I've updated my Laravel installation with the following commands today (which is a few days after Laravel 4's release date):
php composer self-update
php composer update
You can have a look at my composer.json file here: http://paste.laravel.com/umX
In the Docs I've found out about the Maintenance Mode... (http://laravel.com/docs/configuration#maintenance-mode) Trying to use it returns:
[InvalidArgumentException]
Command "down" is not defined.
Command I've entered in the terminal for this exception:
php artisan down
My current version:
php artisan --version
Laravel Framework version 4.0.0
Any ideas? Did i miss something, am I still on some old version possibly?
Thanks in advance and best regards, Martin.
The fix for me was to update the 'providers' array in ./app/config/app.php. I thought I was doing a pretty good job of manually updating the L4 skeleton near the end of the beta period, but there was a minor change in that array (not sure which line) that allowed the 'down' command to finally appear in artisan.
The first thing I suggest you do is just run php artisan list to get a list of all the available commands. If the up and down commands aren't listed then you probably aren't fully updated.
If you have a bootstrap/compiled.php file try deleting it. Also make sure you pull the latest changes in from the laravel/laravel GitHub repository to update your application skeleton.
Once you've done the above you can again check for the existence of the commands by running php artisan list.
In app/start/global.php (or app/start/artisan.php), you need:
App::down(function() { return Response::make("Be right back!", 503); });
don't you?
Perhaps you could also try updating laravel via composer "composer update" in CLI.
I've just installed a clean Laravel 4 clone and tryed the maintenance mode with it.
Everything's working as supposed...
I've also compared the composer.json files + I'm pretty sure I've done nothing wrong updating to the stable release version even thought my app/start/* php-files remain unchanged.
Summary:
Composer seems to not override the php files in app/start/* which would be needed in order to get the maintenance mode working correctly. Probably there are even more files not being updated. This also makes a lot of sense, since you could have done some important customizations to your application there.
Correct me if I'm wrong... I'll start importing my package into a clean install thought. Don't want to run into more trouble due to this.
Best Regards, Martin.

Resources