Laravel framework size - laravel

I just downloaded laravel 4 via composer and i see that the size of the vendor folder 26mb.
After i checked all packages inside the vendor folder i saw that most of them have files that aren't needed in a live website, like tests or readme files.
I must delete those files manually or is there another way?
All those extra packages are required by laravel?
Laravel 3 was very simple, that is why i started using, i never thought a new update could be so different.

Depending on how you installed via Composer you'll also have the Git history of each of those dependencies. You can drop the filesize even more by running composer update --prefer-dist to instead download archives instead of cloning the repository.
In the long run though, disk space isn't exactly expensive in this day and age. I can understand you might be a little concerned about it but you shouldn't worry too much. It doesn't have a huge impact on the overall performance of your application. If you optimize the Composer autoloader with composer dump-autoload -o and run php artisan optimize to generate a bootstrap/compiled.php file you'll still great excellent speed.
In comparison Laravel 3 is very simple. But Laravel 4 has embraced the future and ships with some awesome functionality.
At the end of the day there is no reason for you to upgrade to Laravel 4 if you don't see the need. You can safely continue to use Laravel 3 as it will be patched for any security vulnerabilities or bugs.
For more information on the number of files, see this forum post.

Related

Laravel Spark Composer Update only changes vendor folder

So, I am not totally well versed in composer and Laravel spark and it's been awhile since I have done this so forgive me if this is a silly question.
I updated Laravel Spark from version 1 to version 2 and then 3. I need to make use of the afterLoginRedirectTo function which was not available in version 1. Composer update ran fine and I can see the function in the file named "ManagesAppOptions.php." However, it does not appear that any of my files outside of the vendor/Laravel/Spark folder have been changed. I ran composer install and that didn't do anything either.
Am I missing the point here and I just need to push the changes to the vendor folder to the production side?
Do I need to run gulp or something to rebuild those files in my app folder? Are they not changing because Spark thinks that I manually changed them already? If so, how do I force that to update?

Removing default migrations from Laravel

After creating a new Laravel project with laravel new, there are a couple of migration files in the database > migrations folder:
2014_10_12_000000_create_users_table.php
2014_10_12_100000_create_password_resets_table.php
These seem to be examples of typically useful migrations and are probably a good place to start if you need a system that requires something similar. However I'd like to delete them so they don't clash with something in a new project I'm building.
I was hoping I would be just able to delete the files, as I've not run php artisan migrate yet, but when I try my IDE says:
Why are these files already tied into the system, and how can I safely remove them? Is there some documentation on the Laravel site that I've not been able to find about this?
I guess I could ignore the warning and try running composer dump-autoload -o, but is this really OK?
Why are these files already tied into the system
to map all project classes
how can I safely remove them?
Ignore IDE and delete them then run composer dump-autoload and will remap project classes
Is there some documentation on the Laravel site that I've not been
able to find about this?
i don't see any thing about this in laravel documentation site
Ignore the warnings and delete them. The migrations that come out of the box are to help you get started with basic auth. You don't necessarily need them. Run composer dump-autoload when you're done.

Error in Laravel 5: Fatal error: require(): after recent Composer update

I am working on a Laravel project and it's working fine. But
Recently I have updated Composer by composer update and Composer updated successfully.
Then I have removed unnecessary packges from the vendor folder. I have also removed paragonie folder from vendor, which is unwanted for me.
This gave me following error.
Fatal error: require(): Failed opening required '/var/www/laravel/vendor/paragonie/random_compat/lib/random.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/laravel/vendor/composer/autoload_real.php on line 54`
I have added this folder and working fine.
Any one can help me to figure out what is purpose of paragonie folder.
Why it is included?
Composer manages every package inside the vendor/ folder. You simply can't remove any folder from vendor/ without breaking something. Don't do this!
If you want to remove packages from your project then edit your composer.json and perform a composer install.
There might be some packages in your vendor folder that are not required from your composer.json. This is because ever package can have it's own requirements. If you delete one of these required packages you break it.
There is generally NO necessity to remove anything from vendor!
Note: composer update does NOT update Composer itself. It updates every package of your project! To update Composer itself use composer self-update.
I really recommend you to read the composer docs or some tutorial on how composer works for a better understanding of composer.
Don't manually edit composer.json, or the file-structure of the vendors folder. The vendors folder contains the dependencies and their dependencies.
The most important part about this is that you should not EVER edit a project dependency within a project. The second you do, you have broken future updates, This is a terrible thing.
If you feel this is not possible because a library needs changes, I'd suggest taking a breath.
Most libraries have some built-in configuration options, or methods of modifying the library. If they don't then maybe contribute some, or fork the library.
You can absolutely make changes to any library that has a permissive license towards source code modifications, that is why open-source code exists, but you need to do this in the right way.
You can possibly improve the code by forking using source control, which will also allow you to submit a pull-request(PR) to the package maintainers.
The benefit of trying this is that IF the package maintainers decide to accept your changes, you will be up-to-date with all of their future updates, even if you do not have time to maintain your changes, someone will probably pick them up and make their changes.
IF your PR is not accepted; I would strongly consider revisiting your initial assumptions so that you can be sure the decisions you are making are the only way, or the most beneficial way forward. Either way; it won't matter, as you can keep your fork as the version you pull from in future and either add it to packagist (only if you are really more people will benefit from it); or telling composer to pull directly from your repository (it does have to be on the internet AFAIK).
If you have to fork, you will need to ensure you can maintain the dependency, and this is accepted within your organisation. If it's you then in future, you can manually update from time-to-time from the original source library; to ensure you still enjoy the benefits of the core library, whilst keeping your changes.
THIS IS THE DIFFERENCE BETWEEN HIGH-SCHOOL CODING AND PROFESSIONAL DEVELOPMENT.
sorry for shouting / exclaiming, but this needs to be put out there more, possibly in 100ft letters somewhere.
Resolving this problem folowing these steps:
go to your project from terminal (CLI)
cd vendor
svn add paragonie
svn commit -m ""
And if another file is missing do the same thing.
For me it works 100%.
Good luck.

In laravel why the additional packages are stored in vendor directory?

I want to change the floder for additional installed package.How to change the floder path for additional installed packages.
Laravel is framework that depends on many other packages that has been built by the best in the PHP world and makes use of a dependency management tool called composer.
For Laravel to work her magic, she needs the help of composer to download all those codes that has gone through the test of time to assist her. composer would then place all of these codes into a folder specifically tailored for them which is the /vendor folder.
It seems that you need the power of some other codes to help you in your project. If that's the case, you might want to check out composer first for some basics before starting a new Laravel project.
You might want to check this video on https://laracasts.com to get a bigger picture as to how all of these things piece together.
Update
If you need to change the /vendor directory, you can simply change them in your composer.json.
"config": {
"vendor-dir": "new-vendor-dir-name"
}

Laravel 4 - Developing & deploying web application for other users

Although I'm new to Laravel 4, there has been one question on my mind since day one which I cannot seem to understand, nor find any information on.
My plan is to build an open source web application, which other users will be able to download and use on their own server. Now my current way of working is:
Install Laravel with composer
Add packages to composer than I need for the application
Start coding: editing files directly inside of app/ (global.php, routes, controllers, views, migrations etc).
Keep all of my assets within /public/assets/
This works fine for me, and I have no problems with it. However the question is:
How will I deploy the application to users if I build it this way? If they install Laravel via composer, all of the files within /app will be default (obviously), so how would I go about getting my edited + custom files into their install of Laravel?
Do I have to build the whole application as part of my own bundle? Or is there some kind of way composer can pacakge what I've done to solve this problem I can see happening?
I'm just throwing words out, if someone could explain and point me in the right direction that would be great.
Thanks.
You can just chuck all your files on github. You dont need to include composer. People can download composer and run it from the install directory (or if they have it globally run it from there)
If you run a composer install with laravel 4 only, it will download all fresh. In your case you just have all the library's in place already. So for future updates you as a developer can easilly upgrade to a newer version. The "users" can simply say "git pull" to update their instance. You still need composer to do your initial install (db seed, post install steps etc)
At least that is my point of view. Just look at a simple laravel 4 bootstrap example https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site it also holds all the files.

Resources