Home > This is how we use Laravel to make our clients happy

This is how we use Laravel to make our clients happy

Here at Belitsoft we love Laravel so much, that we created our corporate website www.belitsoft.com (you are here right now) with Laravel, not Wordpress. Laravel PHP framework has numerous major benefits, which allow us to actively use it to boost businesses of our clients. In this article you can discover the differences between Wordpress and Laravel, advantages of Laravel and its light version - Lumen microframework for building massive web applications, and also about Laravel as a backend tool for creating microservices and API.

Contact us to know how our Laravel consultants and programmers could help you with custom Laravel development including migration to Laravel.

Laravel framework is very popular for custom software development. It is the Most Starred PHP Framework on Github: more than 56 000 developers from all over the world (mostly from the USA) greatly appreciate robust features of this platform. Why is Laravel so popular? It gives the right tools to help build websites and web apps faster, more stable and very easy to maintain.

Case Study: Ongoing Laravel backend development and support for a complex fintech web app using microservices

Our client is a global fintech company Insly (was featured in Forbes in 2014 as promising insurance fintech startup, up to 2M+ EUR  in revenues in 2017) with a team working in Minsk (Belarus), London (Great Britain), Tallinn (Estonia), Riga, Vilnius, Warsaw (Poland) and California (USA). 

The Client asked us in 2016 to enlarge his team with the help of dedicated Laravel developers from our side to speed up the process of maintaining his system and adding new complex custom features to it.

Challenges

  • Our dedicated Laravel developers needed to plunge fast into the existing product, its business logic, architectural features and coding standards to be able to maintain and customize it;
  • Our Client has its own developers and we need to adapt to them, to become a part of ONE team united by a single goal;
  • The uniqueness of this SaaS platform is that our Client can customize the product to meet specific demands of its customers. The challenge is that initially the “Core” of this application was designed as a slightly scalable Monolith, hence adding any new functionality to it is a non-trivial task, because customization can disrupt the whole system.

Our Solution

  • Using microservices architecture and refactoring anywhere it is possible. For example, we used Laravel to create insurance calculator to speed up the quote calculation for brokers who also use this SaaS system. With microservices, it is easy to test API calls and create documentation for new functionality;
  • Implementing AutoTesting-First Approach (using selenium testing, unit, and behavioral testing), continuous integration to be sure that customization does not break any part of the Monolith;
  • Implementing Code reviews. That means that code of a certain developer must be checked and approved by two other experienced developers or the team leads. It helped to increase the general quality of code.
  • Maintaining the code of the Monolith written before us (bug fixing);
  • Maintaining the synchronization between crucial databases;
  • Agile-based management (one-week sprints with reports).

Our Workflow

The Team Lead, 7 programmers, and 2 QA-engineers represent our team of developers. The Product Owner and the Scrum Master from our Client’s side control the development process. Using of Skype, Microsoft Teams, Jira, and Confluence provides effective communication between us.

The adaptation period of the team of our developers with the workflows and teams of our Client was about 2-4 weeks.

The development management is Agile-based. That lets constantly discuss the implementation of new tasks and features, and then successfully cope with them within a week. Each task of our dedicated team should be resolved by Thursday evening. The duration of one sprint is one week, so releases take place every Friday.

All the tasks have 4 statuses: 'to do', 'in development', 'needs to review', and 'resolved' (‘Implemented, but needs to be tested’, ‘in Live’, or ’Completed’). The Team Leads organize daily stand ups at 11:00 to monitor how the development process is going: what tasks have been done, what tasks are planned to be implemented today, and what problems have to be solved.

Our developers go on business trips to the Client’s office when it is required to discuss new important ideas, share the mutual experience or participate in the development of new features as a part of the mixed team.

Where to start

What are our rates for consulting and/or development? Formulate your idea in a request for information and send it to us to get information/costs for your project. We also can show you our Laravel works, including web apps we have built.

In case you would like to develop a Laravel-based application or website your request for information might look like this:

Request for a dedicated team of Laravel developers. We are planning to take an existing pilot project to commercial launch by the end of July. We are considering outsourcing to a dedicated team to focus on this product. I am interested in the cost of 3 full-time laravel full stack developers plus a full-time QA resource to work on this project plus other overflow work from existing projects. Required expertise: Laravel, MySQL.

Request for Laravel company. I need a new dev team!  We are a Laravel shop and are building out media/subscription platform. We need HELP. I'm not sure how many people I need.  Currently we have 3 outsourced developers but we are not that happy. They have built the system from the ground up. I believe if we can get one or two senior people and then a junior it might work out. 

Request for Laravel API development. We are a LAMP shop that has focused on using Laravel. We will be buying a 3rd party dataset to which we want to build the API. Then we want to build a website that will display the data. We also have websites that might tap into the API for certain features. We would like to work with your business analyst to define the project and then get a fixed bid. 

Request for Laravel outsourcing. I am looking to outsource one of my projects which is coded in Laravel. Having researched a few companies in Poland I found you as well. I would like to discuss whether Belitsoft is the right firm to continue development of our accounting and practice management software. I would like to consider opportunities to make PHP improvements and build out microservices. 

Request for Laravel developers. Our software provides cloud communications to SMBs & Enterprises via Voice & SMS. We'd like to hire two full-time full stack developers (Laravel, React & React Native). I have some limitations with my current development firm. Unfortunately the developers we have are not up the task, and the project is late and not functioning properly. We're looking for a new team to take over development.

Request for Laravel developers. Hi, what is the average/estimated cost of 1 dedicated developer for a 12 month period, specializing in PHP/Laravel/Lumen/Microservices, with basic server administration skills? Required expertise: PHP, Laravel/Lumen, MySQL, MongoDB, Apache, Nginx, Linux, Microservices

Request for Ecommerce Laravel project development. We want to build a web app (e-commerce website) in Laravel framework (backend) and Vue.js or React as front-end, Bootstrap/jQuery is also fine.  We don't want to use Magento or other e-commerce framework, we have used Magento before for our other project and don't run smooth.  

Request for Ecommerce Laravel project development. Please take a look at our website that is based on Pyro/Laravel and Codeigniter. I am not happy with it and want to make it Laravel. You can explore the website and see what it is I intend to do. Eventually, it will have e-commerce as well. We are re-doing the entire design and would like to do the coding in Laravel from scratch. The focus is on the simple and advanced search capabilities.  

Laravel package development. I am looking to make a Laravel package. I want to fork off of a package that already exists and then add some functionality to it. I want to add in the ability to have. Let me know if this is something you can help with and we can discuss further

Request for Migration to Laravel. I am the founder of a website that was developed 3 years ago with a legacy platform. I was entirely happy with the website until a year ago, when performance became a problem. My website has about 30 000 visits and up to 70 000 page views on a daily basis. 10 months ago I engaged a development company to rebuild it. That firm committed to have my website ready for release within 4 months. It has been now 6 months past the deadline and progress has not been satisfactory. The new website is using Laravel, which is one of your areas of expertise. If I provide you with a detailed description of what needs to be done to publish the website, would you be in a position to provide me with a timeframe and a quote?

Request for Laravel Support and Maintenance. I would be interested in discussing technical support for our platform. The basic tech stack is as follows: NGINX server, PHP, Laravel, OctoberCMS, Bootstrap, SQL/MySQL, XML, JSON and AJAX, SOAP, REST. We would need ongoing technical support for the platform and occasional small updates with potentially more significant development requirements in the mid-term. I would also be interested in discussing what it might cost to document the code. I look forward to hearing from you.

Request for Laravel App Development. We would like to develop Social influencer marketplace platform, we prefer to use rapid application development and Minimum Viable Product/Minimum Lovable Product with basic modules. Framework: Laravel 5.4 / or Lumen, PHP 7; Front End: Angular 2 OR Vue 2.0 jQuery, Ajax, CSS3/HTML5, etc. We can use ready-made front end bootstrap 4 responsive admin template since End user and admin will be using Admin Template. Multilanguage with RTL support.

Request for Laravel App Development. We are building an analytics platform for the crypto currency industry and will possibly be using Laravel for doing so. We would want heatmaps, dashboards and displays with a lot of HTML5-based flexibility in the application. It would have funding and portfolio pieces as well. 

The Top 10 Advantages Of Using Laravel PHP Framework

Laravel Development Benefits

We will list some of the most common problems, which very often arise during web development, and will demonstrate how Laravel enables us to solve all these common problems fast (read as “cost-effectively”).

Building Authentication and Authorization Systems

Each owner of the web application needs to ensure that users are who they claim to be and thus prevent unauthorized users from gaining access to secured/paid resources.

Laravel benefit #1: Laravel makes implementing authentication very simple. Almost everything is configured out-of-the-box. Laravel also provides a simple way to organize authorization logic and control access to resources.

Integration with Mail Services

Mail service can be used to send notifications to users’ emails after various events. It’s hard to imagine a modern web application, for example, lacking even a simple email notification to a new user about their successful registration on the website.

Laravel benefit #2. Laravel provides a clean, simple API over the popular SwiftMailer library. Laravel also provides drivers for SMTP, Mailgun, Mandrill, SparkPost, Amazon SES, PHP's “mail” function, and “sendmail”, allowing an application to quickly get started sending mail through a local or cloud-based service. In addition to support for sending email, Laravel provides support for sending notifications across a variety of delivery channels, including SMS (via Nexmo) and Slack.

Integration with Tools for Making Web Applications Faster

It is important not just to create an application but also to create a fast application, which will result in accelerating revenue. Integration with so-called caching backend is often one of the main steps taken to improve a web application performance.

Laravel benefit #3. Laravel supports popular cache backends like Memcached and Redis out-of-the-box. By default, Laravel is configured to use the file cache driver, which stores cached objects in the file system. For larger applications, it is better to use an in-memory cache such as Memcached or APC. However, with Laravel it is even possible to configure multiple cache configurations..

Fixing the Most Common Technical Vulnerabilities

Security vulnerabilities go hand-in-hand with the development of any web application. American non-profit organization, The OWASP Foundation, describes the most critical web application security vulnerabilities: SQL injection, cross-site request forgery, cross-site scripting, etc. The developer must not forget and be able to fix all of them before delivery.

Laravel benefit #4. Laravel helps to secure the web application by protecting it against the most serious security risks: SQL injection, cross-site request forgery, and cross-site scripting. Laravel itself is secure. We can tell you first hand that the codebase is fanatically guarded, and that the code has been vetted by several people.

Laravel Development Vulnerabilities

Configuration Error and Exception Handling

The way a software application handles errors can have a big impact on user satisfaction and usability of the application. Data-entry forms are one of the most common places where errors are identified and presented after users click a Submit Button. If something does not work because of the user doing something wrong, he/she should be notified about it in the convenient form. If user’s action cannot be completed because the user submitted incorrect data, it should be reported to him/her in an informative error message. Without proper error handling, the user may decide that the problem is in the application (it is out of service) and move away from the application forever. Nobody wants to lose their customers or to disappoint them.

Laravel benefit #5. Error and exception handling is already configured for any new Laravel-based project. In addition, Laravel is integrated with the Monolog logging library, which provides support for a variety of powerful log handlers.

Automation of Testing Work

Without testing and verifying what the developer has created, how can anyone (including the developer) be sure that the software will perform without any crashes, bugs, errors and in accordance with the initial application requirements? Automation testing is less time-consuming and in many cases more exact than manual testing.

Laravel benefit #6. Laravel is built with testing in mind. In fact, support for testing with PHPUnit is included out-of-the-box and a phpunit.xml file is already setup for the application. The framework also ships with convenient helper methods allowing for expressive testing of the applications. It provides easy ways for simulating basic behavior of users (making requests to the application and examining the output, for example, clicking links, filling out forms).

URL Routing Configuration

Users will utilize a web application by clicking or typing links. They will hope to see the desired content, for example, an article, a contact form, a product description etc. If there is no URL routing, the web application will never understand what the user wants to see and may show a blank page or an error page instead.

Laravel benefit #7. All Laravel routes are defined in the app/Http/routes.php file, which is automatically loaded by the framework. The most basic Laravel routes simply accept a URI and a Closure, providing a very simple and expressive method of defining routes.

Separation of “Business Logic Code” from “Presentation Code”

Such separation enables Html Layout Designers (less costly staff) to change the appearance of a web page easily without interacting with Developers (more expensive stuff). Possible bug fixes and feature requests would be done by developers faster (read as “cost-effectively”) if all programming code of the web application has the appropriate separation at the early stage of the development.

Laravel benefit #8. Laravel is an MVC framework, so separation is already done.  See the figure: the full MVC request cycle in a Laravel 5 application.

Laravel Development MVC Approach Image source: selftaughtcoders.com/from-idea-to-launch/lesson-17/laravel-5-mvc-application-in-10-minutes/

Message Queue System (Delayed Delivery) Configuration

It's not just about simple email messages, but about a lot of forms of communication between different parts of the application or between different applications. The more traffic a web application gets, the more requests it must handle per second, the bigger the risk will be that hosting this application will be very expensive (especially, cloud hosting) or that the web server will stop working with data loss.

No stakeholder likes to appear in situations such as this. To prevent it, developers may decide to use the message queue system at the start of project development among other techniques for load balancing, increasing application's speed and keeping data integrity.

Laravel benefit #9. The Laravel queue service provides a unified API across a variety of different queue backends. Queues allow you to defer the processing of a time-consuming task, such as sending an e-mail, until a later time, which drastically speeds up web requests to your application.

Scheduling Tasks Configuration and Management

Whether it is necessary to send out emails to the subscribers each morning or automatic cleanup of the database tables at the end of the day (to make the application faster and to reduce the cost of hosting), any web app needs a task scheduling mechanism to take care of the tasks, when it’s time.

Laravel benefit #10. In the past, developers have generated a Cron entry for each task they need to schedule. However, this is a headache. Such task schedule is no longer in source control, and developers must SSH into the server to add the Cron entries. The Laravel command scheduler allows for the fluent and expressive defining of command schedule within Laravel itself, and only a single Cron entry is needed on the server.

Laravel Development CRON JOBS

Differences between Laravel and Lumen

Lumen microframework is a lightweight version of Laravel full-stack framework. Lumen use the Laravel syntax and components, and can be 'upgrade' easily to Laravel.

Lumen is a more specialized (and stripped-down) framework designed for Microservices and API development. So, some of the features in Laravel such as HTTP sessions, cookies, and templating are not needed and Lumen takes them away, keeping what's essential - routing, logging, caching, queues, validation, error handling and a couple of others.

As Taylor Otwell, the main creator and maintainer of the Laravel and Lumen frameworks, underlined in his interview: “Lumen opts for maximum speed. The actual Lumen framework repository is probably only a dozen files or so. The rest is made up of the Illuminate components. This allowed me to flesh out the features of the framework very quickly, though it did take me three or four iterations to find a solution that was really, really fast while still providing very powerful features”.

Taylor Otwell also talked about one more key difference: «The entire bootstrap process is also located basically in a single file, which is less configurable overall than full-stack Laravel, but for small microservices and APIs that are mainly interested in speed it's a good trade-off».

Additionally, Lumen uses a faster router than Laravel (FastRoute instead of Symfony’s) and many features are disabled by default in Lumen in comparison with Laravel, for example, Facades, Dotenv environment files, Eloquent and so on.

Differences between Laravel and Lumen are the differences between framework and microframework.

What is a microframework? Are there any benefits of using a microframework as opposed to a full-stack framework? What are some examples of when it's right to use a microframework instead of a full-stack framework for custom software development? Lets dive deep into it.

Laravel Development Vs Lumen Development Figure. It is faster to develop some types of software applications with a lightweight microframework rather than a full-stack framework.

What is a web framework?

A web framework is a tool for solving common software development problems fast (read as “cost-effectively”). Web frameworks are divided into full-stack frameworks and microframeworks. 

There is no accepted definition of a “web-framework” meaningful for both developers and non-tech people. Someone says it is a skeleton of any modern web application, others – that it is an application without custom functionality, or even - it is architecture, plus an implementation, plus documentation etc.

Well, there are a lot of official websites of different web frameworks. How do their creators describe what is a web (server-side, PHP) framework?

  1. Symfony Framework is a "set of PHP Components. Symfony Components are a set of decoupled and reusable PHP libraries".
  2. The Joomla Framework is a "PHP framework (a collection of software libraries/packages)".
  3. Zend Framework is a "collection of professional PHP packages".

Based on those official definitions, we can say that web framework is a collection of libraries/packages for creating a web application.

As a rule, programming library/package is a set of functions to perform a specific task, for example, a library for sending emails. Here is a great list of libraries.

The difference between library and framework? In recent years these two terms have been used as those synonymous. The easiest way to differentiate the two is:

  • A library contains many pieces of functionality that you may pick and choose from i.e. using one piece of technology doesn't mean you're locked into the rest. This means freedom, however, you will have more work cut out for you.
  • A framework however very much sets out how you will be working. It provides a workflow that for better or worse is hard to change. This means rapid development/prototyping, but if significant changes are made in the future it may be impossible (or very time consuming) to implement them.

The discussion about “framework” and “library” definitions can be found on the Stack Overflow and Stack Exchange, websites for professional programmers.

What is beyond doubt is that web frameworks “allows developers to save time by re-using generic modules in order to focus on other areas”. As an example, a framework will keep the developer from having to spend 2 or 3 days creating an authentication form (which is not a specific task). The time that is saved can be dedicated to more specific components as well as to the corresponding unit tests; giving the solid, sustainable and high-quality code. Another example: when working in teams, things can get ugly when it comes to choosing options for libraries and tools. Usually, each member of the team will try to push her/his preferred options. Nevertheless, if the team is using a framework, it can simply use the default options and avoid discussions.

Differences between full-stack and micro web frameworks

A full-stack framework is a framework that attempts to provide nearly everything — from web serving to database management right down to HTML generation — that a developer could possibly need to build an application. It likely includes components that may not be needed by the majority of applications, but having them available makes it easier to integrate new features.

Microframework

A microframework is a framework that attempts to provide only the components that are absolutely necessary for a developer to build an application; or it may focus on providing the functionality of one particular area very efficiently. Microframeworks often tend to be better-suited for smaller applications or for applications with specific purposes for which the framework was designed. In the case of web application frameworks, a microframework may be specifically designed for building the so-called APIs for another service or application. Microframeworks often need to be extended with additional components in order to make them provide more functionality.

Full-Stack Framework Source: digitalcommons.uri.edu/cgi/viewcontent.cgi?article=1632&context=theses

Underlining this key difference between framework and microframework, some software engineers refer to their microframeworks as “Slim” or “Fat-Free”.

By the way, here is one more explanation about differences between frameworks and microframeworks, which was made by the creator of one of the microframeworks. The popular «microframework movement» took off in 2013 as an ideology. A microframework is a collection of bare necessities required to build a web application. Typically, a microframework facilitates receiving an HTTP request, routing the HTTP request to the appropriate controller, dispatching the controller, and returning an HTTP response. Some microframeworks take this a few steps forward and also provide additional tools to manipulate the HTTP response (HTTP caching, status updates, redirects, and so on) as well as a middleware implementation. Many developers are familiar with larger full-stack frameworks like Laravel or Symfony. These excellent frameworks have a larger codebase, more "kitchen-sink" functionality, but also require more time to learn them. For some projects, both Laravel and Symfony are great tools. For other projects that do not require additional features, microframeworks are a more appropriate tool for the job.

Laravel Microservices

«Microservices» or «microservice architectural style» is an approach to developing a single application as a suite of small parts – services accessed through APIs - as opposed to «monolithic architectural style» when an application is built as a single unit. It allows different microservices to be written in different programming languages, and they can also be managed by different teams. When is it a good idea to use this architecture in custom software development and why do we use Lumen to build microservices?

Which tool to use – a full-stack framework like Laravel or a microframework like Lumen – depends on software requirements and developer competence/experience. Top-notch developers teach: “Use microframework if you are comfortable with making all of your own architecture decisions and full-stack framework if not”. Since large web application can be built based on microservice architecture approach, this means that projects must not be just micro or small to use the microframework.

Microservices Architecture Development Figure. Example of Microservices Architecture.

When it is a good idea to use microservices

According to the software requirements, each web project is reduced to one of the following types:

  • Development of an application from scratch;
  • Rebuilding (or refactoring) a legacy application;
  • Adding new functionality to an existing application.

‘Microservices architectural approach can be used in each of these cases. But often it is used for refactoring (rewriting) a legacy application from monolith into microservices.’

Basically, there are 4 main reasons for it:

  • The application is getting so big that developers need a lot of time to understand it, and therefore organizational/project scaling issues are arising;
  • The application consists of different parts with independent and very different update&release frequencies;
  • There is a necessity to dynamically scale specific parts of the system up and down, independently from the other parts;
  • Different parts of the system have specific domain or technical requirements that force developers to use a programming language/framework which is different than the common programming language of the team. 

Business perspectives of microservice architecture

  • Protect from failure. In a monolithic service, if the service fails, everything stops working. With a monolithic system, we can run on multiple machines to reduce our chances of failure, but with microservices, we can build systems that can handle the total failure of services. Since services can fail at any time, it's important to be able to detect the issue quickly and, if possible, automatically restore working order. Microservice applications put a lot of emphasis on real-time monitoring, checking both architectural elements (how many requests per second is the database getting) and business-relevant metrics (such as how many orders per minute are received). Semantic monitoring can provide an early warning system of something going wrong that triggers development teams to follow up and investigate. This is one of the main reasons why organizations like Amazon and Netflix use these architectures—to ensure they remove as many impediments to getting software out the door as possible.
  • Scalability. A change made to a small part of the monolithic application (scaling), requires scaling of the entire application rather than parts of it which in turn requires greater resources (hidden costs of building the monolithic application). In contrast, microservices are independently scalable. With microservices, developers can make a change to a single service and deploy it (moving from test server to production server) independently of the rest of the system.
  • Decreasing team size and their productivity. Microservices help developers minimize the number of people working on each codebase to hit the sweet spot of team size and productivity. Project managers can also shift ownership of services between teams to keep people working on one service collocated. When services are isolated from each other,  much less coordination is needed between service owners. The less coordination needed between teams,  the more autonomy those teams have, as they are able to operate and evolve their services more freely.
Microservices Architecture Development Figure. Microservices Architecture is sometimes the best technological solution for business. Source: martinfowler.com/microservices/#what

Examples of projects with microservices architecture

  • Gilt, an online fashion retailer, started in 2007 as a monolithic application, but by 2009 Gilt’s system was unable to cope with the load being placed on it. By splitting out core parts of its system, Gilt was able to better deal with its traffic spikes, and today has over 450 microservices, each running on a separate machine.
  • The Guardian website is another example of an application that was designed and built as a monolith, but has been evolving in a microservice direction. The monolith still is the core of the website, but they prefer to add new features by building microservices that use the monolith's API. This approach is particularly handy for features that are inherently temporary, such as specialized pages to handle a sporting event. Such a part of the website can quickly be put together using rapid development languages, and removed once the event is over. Similar approaches are used at a financial institution where new services are added for a market opportunity and discarded after a few months or even weeks.
  • Other examples include Amazon, Netflix, Google, Ebay, the UK Government Digital Service, realestate.com.au, Soundcloud, Forward, and comparethemarket.com.

Why we use Lumen in building microservices

Microservices need to possess the ability to read and write to a database, must be secured, be built with the so-called message-driven approach, and have the ability to provide reports. Modern microframeworks make these tasks as trivial as possible.

Lumen is the perfect solution for building microservices. It utilizes all benefits of Laravel framework including security, easy database configuration (MySQL, Postgres, SQLite, and SQL Server), queue service configuration, integration with reporting tools and so on.

Lumen microservices architecture example

Let’s imagine a standard web page on an ecommerce website. To pull together the various parts of that website, we might need several microservices. One of them might display the details about the product being offered for sale. Another might show the price and stock level. And we’ll probably be showing shopping cart contents too, which may be another microservice.

If the shopping cart service is unavailable, we’re probably in a lot of trouble, but we could still show the web page with the listing. Perhaps we just hide the shopping cart or replace it with an icon saying “Will Be Back Soon!” or replace the part of the UI containing the cart control with a phone number for placing an order.

The most popular open source microservices created using Lumen are located on github.com.

RESTful API Development with Lumen (Laravel) Microframework

API is an approach that allows different applications or different parts of a single application to share data among each other by special programming commands. By default, an application has no use for APIs if it is not defined by software requirements. When a customer orders an API creation from us and they want to go with Laravel Development then we usually suggest the use of Lumen. When is it necessary to develop an API for the application and why do we choose Lumen for this?

Example of using API

Example of using API

Probably every internet user has seen the most commonly known example of using API: the interactive Google Map in the 'Contact Us' section of almost any website. Each time a website displays this map, it sends a request across the Internet to a special APIs that’s offered by Google for that very purpose and it then receives the appropriate data transformed into an interactive Google Map. It means there is no necessity to redevelop Google Maps in order to add that functionality to the website (cost-effective approach) because it can be simply used by integrating the needed functionality through APIs.

Business perspectives of API development

As ProgrammableWeb editor-in-chief, David Berlind puts in his blog:

‘For those who understand the potential of APIs, there could be millions of dollars to be made, or saved.’

Google Maps is an example of a cloud based web application that shares its own functionality through APIs for free, but with some limits, after exceeding which this API functionality becomes paid. Some other great companies such as Ebay provide APIs that help entrepreneurs to make money by integrating their web, desktop or mobile applications with the eBay API platform.

Lumen API development examples

For any API service, speed is very important, because if it is not able to serve a lot of requests per second fast, the business perspectives of using the API will be much reduced.

As we considered earlier, API development can be done using fast microframeworks like Lumen, which is one of the fastest PHP micro-frameworks available.

  • Lumen microframework can be used to build an API for a web application to integrate it with a mobile application. Simple example: a mobile bookstore application offers a search feature, where the user can look for books by author name. The mobile application needs to use an API, which should be provided by a bookstore web service, to get data about authors and books.
  • Lumen microframework can be used to build an API for integrating different microservices within a large service/application (core project). For example, a core web application helps to order stuff from local, offline stores/partners. Each of these stores/services come with their own APIs. The right development approach is to create a microservice, which will call the APIs of the partners and provide its own API to transfer data received from partners to the core web application.

The most popular open source APIs created using Lumen are located on github.com.

How Fast are Laravel-based Web Applications?

Web application should run as quickly as possible. Amazon found that every 100ms of latency cost them 1% in sales. Google found that extra .5 seconds in search page generation time dropped traffic by 20%. Broker can lose $4 million in revenues per millisecond if his electronic trading platform is 5 milliseconds behind the competition! It is important not just to develop web application but to develop fast web application, which will result in accelerating revenue. Is Laravel fast enough to use it for custom software development?

Laravel Development

As a rule, caching is the way to increase application performance by storing in the filesystem or in memory results of such expensive operations as requests to the database server.

The most common way of explaining the power of cache is via analogy.

‘Caching is like storing milk in the home refrigerator, so you don't have to go to the store (or the farm) every time you need it.’
CEO of Brightidea, San Francisco Bay Area, the USA

Laravel PHP Framework provides wonderful built-in tool to keep the Laravel applications fast – so called cache drivers.

How does caching work in Laravel?

After customers enter an URL of your application into browser, the physical server, where your application is hosted, will receive a request, process it (in a lot of cases, by making requests to the database server), and send back a response. A large number of complex requests to the database server is one of the most resource-intensive operations.

Imagine that 1,000+ Internet users visit your website simultaneously and make requests to the database server! You should have very expensive equipment to handle them all as fast as possible.  It’s much more efficient to transfer the most requested pages once, cache them and then serve future requests directly from the cache.

Laravel supports popular cache backends like Memcached and Redis out of the box. By default, Laravel is configured to use the file cache driver, which stores cached objects in the filesystem. For larger applications, it is better to use an in-memory cache such as Memcached or APC. However, with Laravel it is even possible to configure multiple cache configurations for the same driver.

‘I have moved several slow WordPress sites to Laravel. Speed improvement is about 700%. 10s (WordPress) - 1.5 s. (Laravel).’
Milan Lesichkov

How much faster can caching make Laravel applications?

Laravel Development
Laravel Development
Laravel Development

The performance can be improved twice just by using cache! Awesome enough, right?

Check out also this package  to optimize your site automatically which results on a 35%+ optimization.

Avaiable filters:

  • Inlines small external CSS files;
  • Removes unnecessary attributes in HTML tags;
  • Injects tags in the HEAD to enable the browser to do DNS prefetching;
  • Removes unnecessary quotes in HTML tags;
  • Removes unnecessary prefixes from URLs;
  • Removes unnecessary whitespace in HTML;
  • Removes HTML comments.

Tips to optimize web application perfomance

Besides this, our developers know that there are some other technics to boost speed of the php-based application.

Known fact that page loading speed is an essential factor for any site. Users are not willing to wait for long pages response and in the worst cases they can leave your site. Search Engines reduce page rank of your site when the speed is too slow; this results in fewer visitors from Search Engines. And, yes, as the site administrator you’ll feel irritation, if you have to wait a long time while managing your site, knowing that this process can be accelerated. All the ways to speed up your site are divided into two basic methods: website software optimization and server software/hardware optimization.

Recently Belitsoft PHP department developed several highly loaded PHP based websites and we want to share some techniques that allowed us to speed up sites, developed using the following languages/technologies/tools: PHP, MySQL Percona Server, JavaScript HTML5, CSS3, Apache, Nginx, FastCGI, APC. Using the outlined methods in this article, you’ll be able to speed up your PHP-based website quickly and effectively regardless of its platform.

Tips to optimize web application perfomance

SQL requests optimization

Long processing of database queries is often the cause of slow pages loading. Often the reason for this is incorrectness of queries writing, lack of competent tables indexing, bulky and too complex requests and etc. At this stage it is necessary to catch all requests that carried out more than 2 seconds and directed to database more often.

You can handle with too long requests by using correct index settings in tables and writing less bulky requests with all recommended SQL rules.

System caching data received from the database is the most effective way for most repeated queries. It works as follows - if one of the visitors sent the query to database which returns some data then this info will be taken from the cache if the same query will be done even from the other user. Thereby the load on the database is decreasing and the page load time increases.

Decreasing image size

You can often notice slideshow elements on the main page of websites, where you find 5-7 images, 300KB each. As a result, we got somewhere around 2MB, which are downloaded from the server to user's browser. Also, if the website is a shop and contains more than a thousand of products, and each of these products has 2-3 pictures (200-300Kb) on page, then all of the images need full load time, which ultimately increases pages load time.

In this case I propose:

  • As far as possible, keep the pictures in JPG, instead of PNG format. Some would say that quality will be lost, but sometimes it is not even eye noticeable, and with a large number of pictures - that gives the result.
  • With a help of special programs, change image compression degree. Thus reducing the image quality by 10-15% gives a weighty image size reduction and visually you cannot see the difference.

    Tip: Instead of point 1 and 2 you can check any of your website URLs with Page Speed Tools as it reports how many bytes would be saved by optimizing the page's images.

  • It is also possible to compress images "on fly" when receiving them from server to browser. GZIP allows you to make it easily after site connection and perform this task very efficiently.

Caching

After these procedures, it is desirable to use one of the >data caching systems. This allows to store the received data from server in browser cache for some time. This method allows not taking data from server after reloaded page and using cached data from your browser. It also reduces servers’ load and reduces page load time.

Source code optimization

In fact, it is one of the most important methods and maybe one of the most labor-intensive. Initially correctly built system foundation gives reliability, faultiness and speed of operations. Every developer knows about it, but often neglects this approach. The developers should initially use object-oriented programming paradigm to obey Model-View-Controller and etc., since it becomes truisms for most modern web-development software. In this early stage of software architecture any errors would entail substantial labor costs in future.

Experts in Belitsoft Company have broad experience in developing fault-tolerant source code, which flexibly scaled and modified for the unique requirements of any customer. At the same time, software speed remains fast and customer retains its ability to improve the system without system redeveloping from scratch.

We want to mention fast methods of source code optimization, which gives the results in a short period of time:

1. Asynchronous javascript loading

This method is used when you have on page:

  • Yandex and / or Google metrics or similar software that collects all visitor statistics from all of your pages.
  • Online chat that uses JavaScript.
  • Various «share options» (share buttons: Facebook, Twitter, Linkedin and others) that uses JavaScript.

Often, such JavaScript is loaded before the main visual elements on page and main visual elements are not showing till JavaScript finishes its work. Since JavaScript takes some time to load not a significant visual content, it might seem that whole page is loading slowly.

In such cases you need to use asynchronous javascript loading:

  • At first, page is loading visual objects (page layouts, styles, text, images), which is about 90-95% of total visual content on page;
  • JavaScript is fully loaded in the "background” only after the first point.

As a result, we receive a user-friendly page as almost all content on the page will be shown without delay for the end user.

2. Correction of HTML, CSS, Javascript errors

In order to detect such errors use online W3C-Validator, which analyzes any site, indicates such errors and explains what kind of mistake is this and how to fix it. This method allows you quickly remove obvious errors and thus in most cases it helps to speed up the process of page loading. It also helps search engines to be more loyal to your website, which means the increase of site rating.

3. Reduction of page elements

If you load a page with a certain category products, then similar products and images will be displayed in this list. For example, you display 20-40 goods on pagination list, which means that the exact numbers of images are loading too. In most cases, page visitor cannot see all of the 20-40 items at the same time. To view them all, he needs to use the mouse scrolling. It follows that the initial loading of 20-40 images takes a lot of time. And the visitor is bored to wait until these 20-40 pictures will be loaded on page.

Possible solutions:

  • Load 6-12 elements for each category. In most cases, this is the exact number of elements on a page;
  • Remove the following type of pagination: «<<< 1 2 .... 56 57 >>>»;
  • Load 6-9 new items as far as you scrolling the mouse;
  • Put a vertical arrow to the lower right corner in order to return to the head of page.

As a result, this method allows you to download partly data on page, according to users’ needs, reducing the load on server and free up system resources to use on other tasks.

Tips to optimize server software\hardware perfomance

NGINX web server installation instead / or in parallel with the Apache web server

This gives enormous increase of performance, which helps to reduce the time for inquiry process more effectively. With simultaneous use of Nginx and Apache, it is possible to divide the load between two systems.

Percona server installation

Percona Server is a replacement for standard MySQL. Percona stands out for improved performance and scalability. Advanced functionality allows you to gather various statistics, analyze the problems and find optimal solutions. Percona is free; it also allows accelerating the inquiry process in database for a short period of time, thereby to reduce page load time.

Fastcgi installation

Configure this interface on the side of the server increases the speed of the executable scripts.

APC installation

After installation it allows to cache executable PHP scripts, which also reduces load on web server and decrease page load time.

Optimization of system logs

There is a history log created on server after all system manipulations and if someone is making changes to the system. This history is accumulated in logs: FTP logs, MySQL logs, web server logs, SMTP server logs and etc. In fact, any software installed on the server can create a list of such logs. But all of these logs are extremely important, as in case of any system failures or unauthorized access by third parties, system administrator will always be able to understand causes and recover system. Logs constantly reduce servers’ disk space that could lead to unpredictable expenses on additional free disk space.

Also server creates a special system file (paging file) that is filled during peak hours, when RAM is not enough for server to handle all requests. This system file is always reserve several GB of disk space and can be increased «on fly». So if logs "eat up" the remnants of disk space, the system file cannot increase and as a result the site is very slow, and sometimes it even freezes.

There is only one way out except buying a lot of disk space:

  • Set up continued, automatic backup of current log;
  • Backup process should be scheduled on a low load time (usually at night);
  • Periodically move backup of old logs from the current site server to another location to help not to overload disk space;
  • After that, overwrite the old logs with new one on schedule.

Tariff plan change and server upgrade

If you have used all of the methods above and still want to speed up site response you should update servers’ hardware:

  • Processor power, RAM increase;
  • Placement of web server, server database and file storage on different servers;
  • Master and Slave modes organization on web server side. The first mode takes the main load and sends the rest to the second one;
  • Use "cloud" storage to speed up page load when loading the heavy content (images, video, sounds, etc.) from the closest server.

All of these options (or combinations) will also have a positive impact on site responsiveness and will allow to sustain at least ten thousands visitors at the same day.

Wordpress vs Laravel

Founders of startups or other business stakeholders describe the business ideas of their future web applications. Proficient developers choose the best technology solutions for these web applications: it may be pre-built CMS or web framework such as Laravel. 

When developers propose using a modern MVC framework (such as Laravel) over a CMS (such as WordPress), non-tech stakeholders are sometimes unsure whether it is the right choice. Prebuilt CMS might seem a money/time saver and a more obvious tool to accomplish their business tasks. However, when is it really better to use a CMS rather than a typical modern framework for custom software development?

Laravel Development

Advantages of Wordpress

WordPress, as the most popular CMS, is often a good first choice for the project. Of course, it is not fit for everyone.

Generally speaking, WordPress is usually the no.1 choice if:

  • The project falls under the category of content-based portals such as blogs/newspapers. 
  • The market has available WordPress plugins with the necessary quality/security and functionality to suit software requirements.
  • The founder of the startup wants to test the market and to create the first version of the website fast/cheap with a stripped-down functionality. In this case, WordPress can be useful as a prototype and platform for a minimal viable product.

Some non-tech managers believe WordPress is better than any frameworks because WordPress as a pre-built CMS has a great admin panel (user-friendly interface), so each non-tech staff member can update the website without developers. The truth is that if it's necessary to have a WordPress-like admin panel, then it will be developed easily with a framework. It is also easy to find a Laravel developer - the market is quite wide.

As Jake Goldman, the owner of WordPress-centric digital agency 10up (California), puts in his blog: “Pushing WordPress to a client in the face of clearly better-suited alternative is, from my perspective, tantamount to professional malpractice.”

Security vulnerabilities of Wordpress

When making a decision on the use of WordPress, security vulnerabilities of the WordPress core and plugins should be considered. Just get a quick overview of the widely known cases:

Security vulnerabilities of WordPress mean that it is important to constantly update the WordPress core and plugins (which implies hidden costs). Well-developed Laravel-based websites are more secure and do not need constant updates. Laravel uses custom code and has built-in functions for encryption and protecting against common vulnerabilities.

Moreover, Laravel 5.2 is fully compatible with PHP 7. This newest version of the language makes web applications faster and more secure. And it requires fewer servers to handle the same amount of requests per second, which reduces hosting expenses. At the same time, most of the themes and plugins of WordPress are not fully compatible with PHP 7. Moving WordPress website from PHP 5 to PHP 7 can also be a time-consuming endeavor.

Limits of Wordpress

There are limits of customization that come with any system built with WordPress CMS. If the WordPress-based project grows (more registered users, more operations per second, etc.), at some point there is no choice but to re-create it with a framework (such as Laravel) or to migrate the website to the Laravel framework.

We gathered some frequent cases:

Gizamo: «Asking a web developer to modify a CMS can significantly increase developmental costs. It may also create complications in core functionalities, such as updating, theming, etc. And, it can require a darn good programmer, depending on the platform (which will further increase the costs)».

Developer: «I have been developing with WordPress for a while now. I have been using WordPress outside of its element and been developing web application that aren't necessarily blogs. I loved all the functions they have, and the security it provides.  But I'm starting to work with more complex applications, applications that are starting to not fit in the WordPress model. I need to find a framework that's similar to WordPress in the developmental aspect. I just need a powerful framework that is lightweight and well documented. So I need a framework that can handle user management, template engine, security updates, and has good documentation for development».

Ekaitzastiz: «I have done a lot of things with WordPress: custom themes, widgets, plugins... And for news web and blog web portfolio, it was enough. However, Laravel is a framework that can be used to do exactly what you want and how you want; you can do a custom backend, a REST API, a SPA app, an intranet, a CRM... Big effort is needed in WordPress to do big changes like that. WordPress is not as customizable as an app that you build from scratch with a custom design and focusing on your needs. It's not as flexible when changing anything. Moreover, very important, is the weakness of most plugins and widgets in WordPress: they aren't tested with PHPUnit, or aren't build applying TDD».

Masiorama: «After months developing and using WordPress-based solutions for my clients I noticed that the start of every single project was very fast (easy to install, lots of materials available for free or cheap) and satisfactory enough, but the hell arrived each time there were some more-than-little modifications (logic and design). Using a framework with a pattern like MVC (I use Yii) may be more difficult at the beginning, but to write, debug, and organize your code is far more fluid and satisfactory, on the long run. Even a module (CMS) can be easily extended or rewritten with lesser effort than packed CMS solutions like WordPress».

Steven Richardson: «I just built the whole thing in Laravel, including the blog. I got my app response time down to 35ms with a total page load time of 1.02s from the original 4.3s.  I believe if you can build something that will perform faster, even on a mobile connection over a bloated CMS then build it. Your readers and users will thank you for it».

Milan Lesichkov: «I have moved several slow WordPress sites to Laravel. Speed improvement is about 700%. 10s (WordPress) - 1.5 s. (Laravel)».

Gravy: «I am moving my website from WordPress to Laravel as the website has moved away from being a blog and requires more enterprise and custom functionality. The website has outgrown WordPress».

Raffworks: «I decided to consider moving away from WordPress and into using a lightweight framework for building my sites and web apps. I went for CodeIgniter 2.1.3, but got a surprise insight into Laravel as I was doing so, and have decided to go for that instead».

Milan Lesichkov: «My experience starting with WP and moving it later to Laravel was a nightmare. I have moved many web sites away from WordPress to Laravel. The benefits are great security, speed improvements, full flexibility of what can be done, development speed, great model layer for working with databases, and many more. So my advice, stay away from WordPress. It was meant to be a simple blogging engine that is “hacked” to do much more. Everything in WordPress is a “hack” but most of all, the database. The “blog post” is a post, “image” is a post, “page” is a post and what-ever-you-think-of is a post. All additional data is added in metas, which have to be joined multiple times to get related data. Once your database grows even just a little bit, it gets slow as a turtle. Development speed. It takes me 5–10 times less time to do the same features with Laravel than WordPress. Every time you develop for WordPress you have to “hack” something to get it working. With Laravel it’s all modular and reusable. For instance, what if you want to have a blog on your website? Well it took me about 2 days to do a blogging module for Laravel—fully flexible, that can be added anywhere, reused many times after this».

Development with a framework is a bit expensive in the first investment and cheaper in the long run compared with WordPress development and customization. Maybe it does make sense to invest in proper custom architecture with Laravel or another suitable framework from the outset?

Development of a web application is a mix of common and creative tasks. Good developers like to do all this common work (repeating from project to project) in as little time as possible (without loss of quality) before starting to write custom functions much sooner. Web frameworks are tools that make it easier to solve common tasks quickly with the aim to focus faster on own application logic (creative tasks).

Not all frameworks are able to solve each of the described problems equally well. The best web frameworks such as Laravel help developers to do it and this means that Laravel-based development will make software delivery timely and cost-effective. Besides, Laravel is scalable and it is not a problem finding new developers as this framework is very popular. 

  • Tasks that usually take hours and hundreds of lines of code to write, can be done with Laravel framework in a few minutes with pre-built functions. For example, basic authentication (including social login integration), cache (to improve performance), form validation (to ensure that user has provided necessary and properly formatted information), and etc. are already implemented in a new installation of Laravel. Development becomes easier, faster, and efficient!
  • Writing unit tests is usually very time-consuming, however, it’s definitely worth the spent time because software testing provides clients with information about the quality of the product or service. Fortunately, Laravel testing is already integrated into the framework!
  • Laravel community is very friendly and helpful, and documentation is detailed: developer doesn’t need to spend much time researching best practices in developing and maintaining web applications and making decisions on how to implement everything properly. Unlike Symfony or Zend framework, developers can find many code snippets, tutorials, courses about Laravel.
  • With October CMS based on Laravel PHP Framework, the process of building absolutely anything from simple promotional sites to high-powered web applications becomes even easier. October CMS now is a go-to platform for many developers and clients. It has been installed more than 100 thousand times.

Laravel Basics For Developers

#1 Installing Laravel Homestead Virtual Machine

Use Laravel Homestead (pre-packaged Vagrant box) as your development environment. Vagrant is the command line utility for building and maintaining portable virtual development environments.

Laravel Homestead runs on any Windows, Mac, or Linux system, and includes the Nginx web server, PHP 7.0, MySQL, Postgres, Redis, Memcached and a variety of other useful utilities. With Laravel Homestead it is not required to separately install PHP, a web server, and any other server software on your local machine.

#2 Installing Laravel from Composer

Laravel framework consists of many separate components that are downloaded and put together automatically into a framework through a special tool called “Composer” (a tool for dependency management in PHP). So, before using Laravel, make sure you have Composer installed on your machine.

#3 Using Artisan command-line interface in Laravel

Artisan is the command-line interface included with Laravel.  Artisan offers many useful commands that can help you perform various tasks, such as generating migrations or publishing a package's assets. In addition to the built-in commands, you can extend Artisan with your own commands.

Artisan comes with Laravel by default. If your php command works fine, then the only thing you need to do is to navigate to the project's root folder. The root folder is the parent folder of the app folder.

#4 Creating Routes and Loading Views WITHOUT Controllers in Laravel

The "hello world" for frameworks is to figure out how to process a given URI, and display the appropriate HTML on the page.

Routes define the endpoints of a web application, the final destinations of incoming requests. All Laravel routes are defined in the route files, which are located in the routes directory. These files are automatically loaded by the framework. For most applications, you will begin by defining routes in your routes/web.php file.

Views are used to build up the resulting page that the user will see in their browser when they click on a link or submit a form. Typically a view is the HTML response returned by the application to the browser initiating the request.  Views can be loaded directly from the routing file.  Views are stored in the resources/views directory. View files have a .php file extension or a .blade.php file extension if you use the Blade templating engine.

Using route closures (defining all of your request handling logic as closures in route files, without controllers) is very useful for small projects that don't require too much functionality. Closure based routes cannot be cached. To use route caching, you must convert any closure routes to controller classes.

#5 Creating Routes and Loading Views WITH Controllers in Laravel

For most projects you may wish to organize request handling logic using controllers. Controllers are PHP classes that contain application’s logic and are called from the application’s routing files. Controllers contain methods called “actions” that direct the execution flow of a web application by working with application’s data (models), producing output (views) or redirecting. Controllers can group related request handling logic into a single class. The controllers need to be connected to the routing mechanisms in order to be executed when the application runs. Controllers are stored in the app/Http/Controllers directory.

By creating a controller and specifying which routes in the routing file use its member functions you are able to take full advantage of MVC pattern in your Laravel applications.

Another important advantage of using controllers with routes instead of putting all code into the “route.php” file is that using separate PHP classes to build application’s functionality brings the full benefits of Object Oriented Programming (OOP) such as dependency injection, encapsulation, inheritance and more. This aspect of application architecture is incredibly important for developers who practice good design patterns in their applications.

If your application is using controller based routes, you should take advantage of Laravel's route cache. Using the route cache will drastically decrease the amount of time it takes to register all of your application's routes. In some cases, your route registration may even be up to 100x faster.

#6 Using Blade templating language to create templates in Laravel

Laravel uses its own view template engine called “Blade”. Blade template engine is fantastic for reducing or simplifying the code that you write in your view. Blade template engine also allows you to easily create layouts, extend them and include partials to prevent you from repeating the same HTML in multiple files. Using Blade makes it is possible to combine many templates (for example, header.blade.php, footer.blade.php and sidebar.blade.php) into a single HTML output. To reduce duplication, Blade provides "layout files." Within these files, you can define the wrapping HTML, which nests the content from each of your views.

Blade Template Engine

#7  Adding/managing your CSS and JS files in Laravel

When it comes to including your assets (CSS and JavaScript files), you can create directories within your public folder and add it directly in your view file. This is great for small projects.

Blade Template Engine

But if you need to use CSS preprocessors, or concatenate some files and minify them, Laravel Elixir (a tool to integrate Gulp into your Laravel projects, a task runner built as a wrapper around Gulp) will help you.

Gulp is a well-known JavaScript-based task runner - an automated tool for performing repetitive tasks like concatenation, minification, unit testing, linting etc. With Gulp you can create tasks to watch, compile, concatenate, minify and auto-prefix your CSS and Sass/Less, concatenate and minify JS, minify HTML and optimise images.

Elixir is built on top of Gulp, so to run your Laravel Elixir tasks you only need to run the gulp command in your terminal. Make sure that you install Gulp globally first.

#8 Database Management and Database Operations in Laravel

Currently, Laravel supports four database systems: MySQL, Postgres, SQLite, SQL Server. The database configuration for your application is located at config/database.php. In this file you may define all of your database connections, as well as specify which connection should be used by default.

Laravel interprets the data stored in the database into objects that you can easily manipulate like you would manipulate any other PHP object. This allows the developer to focus on other parts of the application instead of figuring out complex Structured Query Language (SQL) queries necessary to work with the data.

Laravel comes with two powerful sets of features to execute database operations, by using its own Query Builder or by using concept of “models” in Eloquent ORM. You can use both in the same application (even combine both to get the most flexibility out of DB operations).

Laravel’s Query Builder provides a clean and simple interface for executing database queries. It is a powerful tool that can be used for various database operations such as retrieving records, inserting new records, deleting records, updating records, performing “Join” queries, executing raw SQL queries, filtering, grouping and sorting of records

Laravel makes interacting with databases extremely simple using the Eloquent ORM (the most preferred way to fetch data and render it in the view). The Eloquent ORM provides an ActiveRecord implementation to work with your database. This means that each model corresponds to a table in your database. We can use Eloquent to interact with our database and do the basic CRUD functions, set up and use one-to-one relationships, one-to-many relationships, AND many-to-many relationships.

Some of the advanced database operations that Laravel provides out of the box are managing database tables and fields through special files called “migrations”, populating database with sample data (also called “seeding”), working with separate read/write databases, pagination, many different relationship types and advanced methods of querying relations, database transactions and query logging.

#8.1 Laravel CRUD operations

Forms exist in just about every single web application. How does it work in Laravel? Let's review the basic workflow for submitting a form, fetching the data that was sent through, and then creating a record in the database.

You'll of course need to modify existing records in the database. Let's review the process of creating an "edit" page to handle this very task. Along the way, we'll also get a chance to review PATCH requests and the concept of eager loading and the problems it solves.

Along the way, you'll be introduced to custom packages, service providers, and much more.

#9 Using Laravel Middleware

Middleware provide a convenient mechanism for filtering HTTP requests entering your application. There are many more cases where you would like to use a middleware: changing the site language based on locale, enabling site-wide maintenance, sniffing bot traffic, logging etc. There are several middleware included in the Laravel framework, including middleware for authentication and CSRF protection. All of these middleware are located in the app/Http/Middleware directory. Additional middleware can be written.

#10 Laravel Flash Messages Example

Often, you'll want to send a quick notification to the user when they perform some kind of action in your application. "Good job, your task has been created." Or: "You are now logged out." So it seems that we need a way to store things in the session for just a single request. There are some clean ways to handle this in Laravel!

Laravel's service container (also known as the IoC container) is the heart of Laravel. It is a powerful tool for managing class dependencies and performing dependency injection.

Basically the IoC Container is just an ordinary PHP class. But we can place or “Bind” in it everything we need from interfaces implementations to directories paths and so on. Now, since we have a single Object that contains all of our various bindings, it is very easy to retrieve them back or “resolve” them at any point in our code.

#11 Laravel Service Providers

Service providers are the central place of all Laravel application bootstrapping. Your own application, as well as all of Laravel's core services, are bootstrapped via service providers.

But, what do we mean by "bootstrapped"? In general, we mean registering things, including registering service container bindings, event listeners, middleware, and even routes. Service providers are the central place to configure your application. For example, when installing a package, you have to give application access to that package - one of the best solutions is through Service Providers list and a Facade.

Laravel ships with many facades which provide access to almost all of Laravel's features. In a Laravel application, a facade is a class that provides access to an object from the container.

Facades have many benefits. They provide a terse, memorable syntax that allows you to use Laravel's features without remembering long class names that must be injected or configured manually. Furthermore, because of their unique usage of PHP's dynamic methods, they are easy to test. However, some care must be taken when using facades.

Built With Laravel: 10+ Reputable Companies and Startups that Use Laravel Framework for their Web Projects

Both well-established companies and startups are using Laravel Development. The framework is robust and versatile, which is appreciated by business owners on many levels. Take a look at examples of great Laravel-based projects.

#1. STARTUPS.CO

STARTUPS.CO is a startup launch platform built with Laravel to help emerging companies find customers, press, funding, and mentors. The platform tracks 825,000 startups and provides access to 13+ million registered users. It serves customers in the United States and internationally. Startups.co is based in Powell, Ohio.

Fundable.com, a subdivision of  startups.co is also built with Laravel. It is a crowdfunding platform that offers rewards-based and equity-based campaigns for small businesses. Fundable has helped arrange $150 million in funding for startups through its platform.

Zirtual.com, another part of startups.co is also built with Laravel. It provides dedicated US-based virtual assistants for busy entrepreneurs, professionals, and small teams to perform in-person tasks; legal, accounting or HR; full-time customer support; team/staff management, etc.

Laravel Development

#2. Toyotahalloffame.com

Fantasy football is an interactive online competition for 30+ million players in the U.S. and Canada. Toyota and Yahoo are bringing the average fantasy footballer a chance to be inducted into a fantasy hall of fame. This Laravel website is set up to nominate hall-of-famers.

Laravel Development

#3. RV.CAMPINGWORLD.COM

RV.CAMPINGWORLD.COM is a Laravel-based web application of the American corporation Camping World, which specializes in selling parts and service for recreational vehicles (RVs) and camping supplies. This Laravel website helps users in selling or buying RVs online and making requests for services (diagnostic, repair, maintenance, warranty, collision, and installation).

Laravel Development

#4. GLOBALDIETARYDATABASE.ORG

GLOBALDIETARYDATABASE.ORG is a data collection Laravel web application created for the Friedman School of Nutrition Science and Policy at Tufts University. It has since attracted media attention and was endorsed by Bill and Melinda Gates Foundation. The aim of this project is to collect diet and nutrition data from hundreds of government health ministries, academic institutions, and NGOs around the world. When this data is compared with disease databases, they can establish correlations between diets and health outcomes. This Laravel web app automatically tracks and maintains the status of all data and communications.

Laravel Development

#5. EXPLOREGEORGIA.ORG

EXPLOREGEORGIA.ORG is an official Laravel-based state’s tourism website of the Georgia Department of Economic Development (the United States). This innovative and engaging web app uses practical planning tools to motivate travelers to make a trip to the state. Georgia Explorer Trip Planner offers potential visitors a playful way to explore the entire site and plan their dream vacation or weekend. All aspects of the travel decision-making process for the consumer have been taken into consideration – from inspiration to trip planning to booking to sharing via social media.

The site provides greater exposure for the state’s thousands of tourism industry partners. More than 16,000 Georgia restaurants can be searched and filtered based on location, cuisine or type of establishment. The similar affiliate websites are Marketgeorgia.org and Tourgeorgiafilm.com, which also use Laravel framework.

Laravel Development

#6. CEENTA.COM

CEENTA.COM is a complex corporate Laravel-based website of an American Medical Group, Charlotte Eye Ear Nose & Throat Associates (CEENTA) located in North Carolina. CEENTA is the region’s premier provider of the eye, ear, nose, and throat care for adults and pediatric patients for more than 90 years. In addition to otolaryngology and ophthalmology, the group’s complete services include audiology, allergy, clinical research, contact lenses, on-site surgical facilities, facial plastic surgery, sleep medicine and full-service optical shops.

Laravel Development

#7. INVICTAWATCH.COM

INVICTAWATCH.COM is a complex corporate website built with Laravel of an American watch company Invicta Watch Group (previously founded in 1837 in Switzerland). The website has e-commerce features such as online product catalog with images, videos and descriptions.

Laravel Development

#8. RATEMYAPPRENTICESHIP.CO.UK

RATEMYAPPRENTICESHIP.CO.UK is a Laravel-based web application, which is aimed to provide young people in Great Britain with relevant information about Apprenticeships and School Leaver Programmes as well as other relevant opportunities such as Sponsored Degree Programmes, Gap Year Programmes, Traineeships and work experience. An apprenticeship is a real job with a mix of on-the-job and off-the-job training during which a specific set of skills and qualifications is taught that will be useful in future jobs. It usually takes between one and four years and can be done in a variety of industries, including accountancy, finance advice, engineering, retail, law and social care. In addition to training and education, an apprenticeship provides the apprentice with work experience and an income. RateMyApprenticeship.co.uk belongs to the UK Company RMP Enterprise (based in Westminster).

Laravel Development

#9. FOX47.COM

FOX47.COM is an official news website of Fox-affiliated television station WMSN-TV that covers society, sports, weather and traffic for the Wisconsin Capital Region.

Laravel Development

#10. BONAPPETOUR.COM

BONAPPETOUR.COM is a community marketplace (Airbnb-style social restaurant) built with Laravel framework that connects travelers with local home chefs for a unique home-dining experience. On this website, travelers can find dinners available in the cities they are visiting (in over 75 cities around the world). Each dining experience features a menu prepared by the home chef (there are more than 500 verified hosts), a description of the host and reviews by previous guests (if any). Travelers can message the host if they want to. Once both the traveler and the host have confirmed the arrangement, the traveler should make payment via the website.  Bonappetour was founded in 2013 in Singapore.

Laravel Development

#11. YULAIR.COM

YULAIR.COM is probably a website for Canadians to search for the best airfare to/from the country. This multilingual web application is built with Laravel framework. A team of experts scours the web for the cheapest flights leaving from different local airports and posts them on this website. Visitors can then search the site or get email alerts. Yulair averages 100,000 unique monthly visitors and has a social media following of over 80,000.

Laravel Development

#12. LARACASTS.COM

LARACASTS.COM is a well-known e-learning Laravel-based website that specializes in teaching subscribers PHP framework, Laravel, and other related technologies. It updates daily, specifically for working web developers. The majority of beginner-level content is free to everyone. And a monthly $9 charge gives developers access to the entire catalog of videos. Laracasts is based in the USA and has a social media following of over 25,000 on Twitter and 10,000+ on Facebook.

Laravel Development

We used wappalyzer to uncover the websites' technologies.

Frequently Asked Questions

How many developers do you have with experience in Laravel? With experience in React? With experience in Wordpress?

There are 50+ PHP developers at BelITSoft and around 40% (~20) of them have experience with Laravel. There are 12 front-end developers with React experience as well as full-stack engineers with React experience. Many of our PHP developers used to work with Wordpress to varying degrees. 3-5 engineers had such experience recently or still work on some WP projects.

What is your average turnaround time on new requests?

Our project manager or the account manager will give you feedback on new requests within 1 working day. If an estimation or investigation is needed, it may take the development team some time before they can give an adequate response, but in any case we start working on new requests within 1 working day.

Our development process is feature-driven utilizing feature branches and pull requests. What level of familiarity do your developers have with git-flow and GitHub pull requests?

Quite familiar. It's a regular work on most projects.

Please provide a GitHub link for a repository that best demonstrates your specific developer's skill with Laravel, React, Wordpress. We could start you immediately on a Laravel project that is using Socialite. We would begin with one epic (a group of user stories about 40 hrs). If the developer performs well we could open up on a monthly basis. Our Director of Development needs to get access to a GitHub to approve code sample before we can engage.

We can show you code samples from the specific developers that you want to contract.

Do you have DevOps experience? 

Yes, we have. Depending on project needs our DevOps engineers can handle administration, software deployment and monitoring, process automation, scripting, networking, integration, cloud, virtualization, installation/configuration/setup, technical support, traditional sysadmin tasks etc.

Some of our customers have their own dedicated DevOps working alongside Belitsoft outsourcing teams.

I want to build a freelancer platform like fiverr.com. I have the html template design and I want to build it with laravel framework. I want to know if your team can do it this, as well as the time it would take and price for the finished project. 

A project like fiverr.com is much more complex than an average website and requires thorough analysis to recreate. Your requirements list outlines main points, but I would recommend you to create a detailed specification. On the one hand, it will give you and your vendor a very clear picture of the objective, on the other hand it will help you to get a realistic estimation, not some fiction a vendor came up with to win the project.

How we can help you at BelITSoft? We can provide you with a skilled Business Analyst (BA) to create a good spec. The time frame depends on the complexity of the project and new ideas you'll want to implement. The specification is not just a basis for estimation - it also serves as a guideline for the development/QA team when you give the project a go.

There are two possible options (we usually recommend the 2nd one):

  1. We can create a complete spec from the ground up and give you the final estimation of the whole project;
  2. Or we can divide the whole project into phases and select the features for an MVP (minimum viable product) version. An MVP helps to check whether a business idea works before you spend much effort, time and money. When it is ready we proceed in sprints (2 weeks long on average) until the project is done. This way is reasonable because it allows the team to stay flexible and make changes on the go. The project budget is formed on the basis of man-hours actually worked.

How to Protect Your Idea of a Laravel Based Project

If an outsourcing vendor cannot be trusted to protect trade secrets, then the risks of outsourcing custom Laravel development may outweigh its potential benefits. You need to address this concern before bringing your Laravel-based project to life.

 “My idea is brilliant, but what is there to stop them from seeing my concept as a lucrative idea, but saying to me 'hey, sorry, but we're not interested' and moving forward with the idea themselves?!' Meanwhile, they have my product in their hands and can tweak it a bit and 'make it their own'. I'll be left with nothing…”

Belitsoft is a business with 15 years of experience on the global market. Dozens of startups and enterprises come to us with innovative ideas every month. We value our reputation highly and would not sacrifice it for the sake of short-term gain. 

You can see selected testimonials of our big and small clients along with other independent reviews they keep giving us. These include healthcare companies and startups who trusted us to work with their highly secure solutions

We sign an NDA before clients share information with us. You can also check out our  intellectual property protection policy.

Sharing is caring!

Author
Written by
Partner / Department Head
I've been leading projects in Healthcare, Financial and other domains for 14 years.
4.4
8 reviews

Rate this article

Testimonials

tichen

I expected and demanded a lot of you at Belitsoft company, but you exceeded my expectations. You acted pro-actively, challenged me at the right moments. Thanks!

Martin Beijer

CEO at Ticken B.V. (Netherlands)

EFI

We have been working for over 10 years and they have become our long-term technology partner. Any software development, programming, or design needs we have had, Belitsoft company has always been able to handle this for us.

Bjarne Mortensen

СEO at ElearningForce International (United States, Denmark)

Crimson

They use their knowledge and skills to program the product, and then completed a series of quality assurance tests. We were working in an agile way with them. Belitsoft performed very well throughout our project. We are definitely looking at Belitsoft as a long-term partner.

Eddie Nicholas

Service Delivery Director at Crimson (United Kingdom)

Berkeley

I highly recommend Belitsoft for website design and development. We were up against a tight deadline to launch the project. The work was delivered on time and within budget! I will continue working with Belitsoft as a valued partner for our web development!

Adrienne Herd

Program Administrator at UC Berkeley (United States)

Hathway

We have worked with Belitsoft team over the past few years on projects involving much customized programming work. They are knowledgeable and are able to complete tasks on schedule, meeting our technical requirements. We would recommend them to anyone who is in need of custom programming work.

Kevin M. Rice

Main Partner at Hathway Tech (United States)

Howcast

Belitsoft company is able to make changes instantly. One of our internal engineers has commented about how clean their code is. Belitsoft seems to know what they're doing, which I appreciate.

Darlene Liebman

Co-Founder at HOWCAST MEDIA (United States)

Fraunhofer

It was a great pleasure working with Belitsoft. Software Development Company. New requirements and adjustments were implemented fast and precisely. We can recommend Belitsoft and are looking forward to start a follow-up project.

Renè Reiners

Deputy Head of Division at Fraunhofer FIT (Germany)

Apollo Matrix

Belitsoft company has been able to provide senior developers with the skills to support back end, native mobile and web applications. We continue today to augment our existing staff with great developers from Belitsoft.

Pete Johnson

CEO at Apollo Matrix (United States)

Key2Know

Belitsoft company delivered dedicated development team for our products and technical specialists for our clients time to time custom development needs. We highly recommend that you use this company if you want the same benefits.

Bo Sejer Frandsen

Managing Director at Key2Know A/S in 2012 (Denmark)

Regen Med

We approached BelITsoft with a concept, and they were able to convert it into a multi-platform software solution. Their team members are skilled, agile and attached to their work, all of which paid dividends as our software grew in complexity.

Nicolas Tierney

COO at Regenerative Medicine LLC (United States)

Moblers

Having worked with Belitsoft as a service provider, I must say that I'm very pleased with the company's policy. Belitsoft guarantees first-class service through efficient management, great expertise, and a systematic approach to business.. I would strongly recommend Belitsoft's services to anyone wanting to get the right IT products in the right place at the right time.

Guy Doron

CEO at Moblers (Israel)

Showcast

If you are looking for a true partnership Belitsoft company might be the best choice for you. They have proven to be most reliable, polite and professional. The team managed to adapt to changing requirements and to provide me with best solutions. I strongly recommend Belisoft.

Ivo Downes

Director at ShowCast Limited (Germany)

Let's Talk Business

Do you have a software development project to implement? We have people to work on it.

We will be glad to answer all your questions as well as estimate any project of yours.

Use the form below to describe the project and we will get in touch with you within 1 business day.

Contact form
* Maximum file size is 20MB
to top