Laravel Hosting: Compare Hosting
Oops! No Hosting Plans Match Your Search
You've selected a combination of features that none of the web hosts we profile offer. We suggest you remove your last filter or reset & start again.
Ask Our Experts
Need help with your hosting? Tell us exactly what you are looking for and we’ll do our very best to help. Please allow one working day for a response.
Please fill in all fields.
Thanks! Your request has been sent. We'll reply within 24 hours.
Recommended Host for Laravel
What is Laravel?
Are you building PHP applications? Are you using a development framework? Laravel is a development framework for building web applications in PHP. An application framework is a suite of tools and templates for developing new software applications, along with a methodology for organizing the code and designing the system architecture.
When building a new web application in PHP, there are a number of common features that need to be included no matter what the core functionality of the new application is. This “boilerplate” development includes complex activities like user and session management, as well as fundamental utility code like connecting with a database.
Very few developers really enjoy coding these types of features. It’s a lot of complicated and exacting work without much payoff in terms of value added to the product.
Laravel and Basic App Features
Laravel provides all the core features that every web application needs, such as a database abstraction layer and a user login modules.
In addition to that, Laravel takes this a step further and offers additional modules for commonly (though not universally) needed functionalities like payment processing (the Laravel Cashier module) and event listeners.
Even better, because Laravel uses Composer for package management, it is easy for developers to create (and other developers to include) other generalized feature sets. This is especially useful for software development teams building multiple apps in a related industry; domain-specific features can easily be modularized and included in multiple projects.
Developers building a new software application have an almost unlimited number of ways of designing the system and organizing their code. This complete freedom is the source of the great potential of software — anything is possible. But this is also the source of many project failures and delays — anything (bad) is possible.
It is very rare that someone is building an application to do something so incredibly novel that an entirely new approach is needed. (And it is even rarer in PHP.) So it makes sense that a good development framework would provide exactly what its name implies: a frame of an application.
Laravel is strongly orientated toward best practices and a logically sensible architecture.
Model View Controller
Laravel is built on the Model–View–Controller (MVC) paradigm, which is a way of structuring an application so that the data, the display, and the business logic are separated from each other.
The Model is the data model. This is the code that defines the types of data objects the system will keep track of, as well as their attributes and relationships to each other. The code in the model (along with basic utility classes in the core of Laravel) specifies how the the application will interact with the database.
Laravel provides a “database abstraction layer,” which is a generic coding interface to a number of different supported database systems. Because of this, the primary data model (the Object Relational Model) is written directly into the application code, not in SQL.
The Model also provides an interface for updating the data associated with any object, and syncs those updates to the database or other data persistence layer. This interface is accessed primarily by the Controller.
The View is a system of templates which present data from the model in a specified way. This can be an HTML page viewable from a web browser, but it is not limited to that. Other forms of views include a public data API, an RSS feed, email templates, or printed documents. The View does not manipulate data, it merely receives it from the Model and displays it as specified. This ensures that if you are (for example) looking at an analysis of site traffic, the data is exactly the same whether you view it as a list, a graph, or a pie chart.
The Controller handles all the application logic. This begins with the connection between the Model and the View, as well as the connection to the web server or other source of requests. Other things handled by the Controller are any special conditional features. For example, if you want an email to be sent when a specific action occurs, that email is triggered by the Controller. (The Controller will no doubt receive information about the contents and recipient of the email from the Model, and the View will provide the template for the actual message.)
It isn’t just boilerplate features that require a lot of boilerplate code. The development of new functionality can often be equally tedious.
For example, imagine you are building a management application for an auto repair shop. You’ll want to create a class of data objects that keep track of vehicles. But you don’t just have to create a new class. You have to create a View for Vehicles — surely you’re going to want to display a screen that shows the details of any specific vehicle. You’ll also need an index view — you’ll probably want to see a list of multiple vehicles at the same time. You also have to create a route (in the Controller) for each of these — it doesn’t matter that they exist if a user can’t get to them. You’ll also want to make sure that all these different pieces of code all work together, so you better be sure that you didn’t misspell “vehicle” in one file, or use the singular when you should have used the plural.
Laravel provides a command line interface (CLI) that allows you to create scaffolded code quickly. All you do is declare the new model, and some of its attributes, and the various files and code blocks needed are created. You still, of course, have to fill these in with the real code, but all the elements are there, and the connections between them are already built.
Laravel Web Hosting
Laravel runs on PHP 5.4+ and requires the MCrypt Extension. Depending on the type of application you are building, you will need a database management system of some sort, but this choice is up to you (several are supported).
The critical issue for developing and hosting a Laravel application is that you need to be able to install software on your server yourself. Laravel requires Composer, and Composer will install any needed libraries or dependencies.
Not all shared hosting plans provide this level of control and access to the server environment, so you may need to use a VPS account or run your own Dedicated Server.