Since it’s first release in 2011, Laravel has grown multi-fold and now it’s considered to be the best PHP framework in 2017. From complex APIs to simple web apps, Laravel can be a one stop PHP development platform for your business. The set of libraries and architecture that this framework provides, make it easy to build amazing sites using well structured and beautiful code. However, to build such apps, your Laravel developer should know the tweak and tweets for utilizing the power of this framework and enhance performance as well.
Moving forward from our last blog where we discussed why Laravel is considered to be the best, now in this one we are going to discuss 7 performance optimization tips for Laravel developer. Let’s see what we found after our research at ValueCoders:
Laravel comes with a very useful and unique tool named Artisan command and this is very helpful to boost performance. See our common setup here:
This is very useful, especially when your Laravel developer is creating a lot of routes and configuration, and he just simply creates a cache as plain array, and then Laravel becomes faster to load cache instead loading the real object.
But don’t forget to re-run this command after you’ve changed config or your routes file. If not, Laravel will not handle your changes because it already loaded from cache.
Also, We cache user data, settings and locations. This limits the amount of SQL queries. Make sure you invalidate the cache when the data changes. Also make sure you have good indexes for your database
Cache your configs, routes and views. Add these commands to your Forge deploy script.
Sometimes it is better that you don’t load all services in your config, and disable unused service inside config file. Add comment to unused service provider in config/app.php. However, make sure after commenting, you don’t break whole functionality of your app.
You May Also like: Symfony vs Laravel: which one to choose?
There are a wide variety of plugins for Laravel that allow you to easily add more functionality. With that increased functionality comes more libraries and files to load, which can slow you down. Make sure to take take a look at which providers you are loading through your config/app.php file and cut down unnecessary ones. Moreover, Laravel uses composer to manage its components, so cutting down your composer.json file will reduce the dependencies that are loading.
If you are curious about what happens behind the scene when you execute a query on an Eloquent object, you should install a profiler package. You can choose https://github.com/loic-sharma/profiler , which is a port of Laravel 3’s profiler, or https://github.com/barryvdh/laravel-debugbar , which integrates the generic PHP Debug Bar package. Once installed, they add a toolbar at the bottom of each rendered view, which shows the SQL queries that were issued on a given page and the amount of memory used by a request to your application. This is often the best way to identify potential bottlenecks in your code when you work with smaller data sets in your local development database.
Laravel uses Eloquent ORM to easily map your object models to the database tables supporting it. With a few simple files you can map out your object structure, and Eloquent will handle all the appropriate database interaction needed for the CRUD (create, retrieve, update, delete) operations. When Eloquent does it, it uses a “lazy loading” approach.
That means for any related data, such as the author details for a book, Eloquent won’t actually retrieve the data until it is specifically referenced somewhere else in the code. While it may seem harmless to have one or two extra queries on your details page, making a similar query against a collection of books can result in a lot of queries and reduced performance as you wait for all of your data to return.
Instead, you want to set up your queries to use “eager loading,” which means they will retrieve any associated object models as part of your initial query. That way they are immediately available for use. Your typical…
Eager loaded query.
For development, having all of your assets in separate files (such as routes and configuration files) is helpful for code maintenance. For production, this isn’t necessary. To help with this, Laravel has a few artisan commands available that you can run before deploying your site:
These commands will compile your frequently used classes into a single file for quick reference. They will also combine your configuration files and routes into single files for faster loading. You can also add your own classes into the optimization that might not be added by default. The performance increase will vary, but every little bit helps.
Computers can’t understand PHP natively. You can’t compile PHP to bytecode and have machines running it. That’s why it is done through a middleman, like the Zend engine, that interpets your PHP files and executes C routines accordingly. As you might guess, this is slow. Everytime your server runs a PHP file, it has to convert it to tokens – done by the AST parser and intepret it. It unfortunately has to compile it every single time, even though it gets the same result.
For your application to act fast, you need to compile it once, run it every time method, and this is what a JIT compiler does.
The recommended JIT compiler for Laravel is HHVM, created and used extensively by Facebook. It’s also used by Wikipedia, Etsy and thousands of others.
Hence, now you know how to improve performance of your Laravel developer while developing a web app. However, to do this a vast technical knowledge is required from your end and ample amount of time as well.
Instead, how about you outsource a Laravel development company or hire Laravel developers who are already adept at these techniques? Sounds good right. ValueCoders is such a Laravel development company from where you can hire Laravel developers.
We Brew Our Blogs Especially For Startups, Agencies & CTOs. Subscribe & Get Latest Updates Straight To Your Inbox
Save Upto 50% Of Development Cost and Get 2x Faster DeliveryCONTACT US