Celebrating my first year of web development with Laravel
Introduction to the Framework
Laravel is the most popular PHP framework among the web developer community right now. If you need to implement a web application using PHP and following the MVC architectural pattern (MVC: Model-View-Controller) with expressive, elegant syntax, Laravel is the best-recommended option for you. Laravel is free, open-source, accessible, yet powerful, providing powerful tools needed for large, robust applications.
The predecessor of Laravel is Symfony, which is another great PHP framework. Although Symfony is considered as the industry standard and best-known for its larger community support, within next couple of years time, it will fade away with the rising of Laravel lovers.
If you are a computer science student or someone just more than an ordinary coder, you will love seeing the OOP (Object-Oriented Programming), MVC, modular development, query building, application logic, data modelling, version controlling, testing support, and several other great implications used in Laravel. On top of everything, it is easy to learn and apply (‘rapid development’, they say). But if your motive is to learn PHP from scratch and discover many great things related to PHP, using a framework is not a very good idea. You will not learn pure PHP by using Laravel. You can easily implement your semester project or any industry work with Laravel. What you must thoroughly understand is, Laravel is a collection of development features, not just pure PHP coding.
Basics on Web Communication
In the context of web development, communication occurs between several parties over the HTTP: Hypertext Transfer Protocol which is the client-server TCP/IP protocol used on the World-Wide Web to facilitate the exchange of HTML documents (Note that HTTP conventionally uses port 80). In both client and server side environments, there is code which runs on each machine. In client-side programming, we write programs to run on the Client, whereas in server-side programming, we write programs to run on the Server.
Runs scripts on the client (usually the web browser)
The source code is transferred from the web server to the end user’s computer over the internet, but runs directly on the browser
Processing occurs on the end user’s computer
Interacts with temporary storage and local storage (cookies, local storage) and performs tasks dynamically on the web page
Runs scripts on the web server
A user’s request is fulfilled by running scripts directly on the web server and generate dynamic HTML pages which will then be sent to the client browser
Processing occurs on the server computer
Provide interactive web sites that interface database or other data resources stored on the server
Most-used languages: PHP, Python, ASP.Net or nearly any language which has the capability to perform application-level web services (Java, C++, C#)
PHP: Hypertext Preprocessor was developed by Rasmus Lerdorf as a web tool to keep track of who was actually looking at his resume. Its first version was released in 1994 and since then, it was developed by the open-source community (visit php.net). PHP is one of the most popular server-side scripting language being used by web developers all around the world. If you have ambitions of becoming a web developer, PHP is something you should know (at least some understanding on how it works and how it differes from modern technologies). PHP will allow you to create dynamic web pages based on external input. It is also important to note that PHP is an object-oriented programming language, and O.O.P. is one of the most important fundamental concepts every computer science student learns at the university level.
Getting Started with Laravel
If you are a beginner who wants to start a journey with Laravel, I recommend you using the official documentation. But it presumes that you have already setup the local development environment to get started with the documentation. In my early days with Laravel, I struggled for days not knowing how to setup my dev environment. So if you are a newbie (or lazy) developer like me, follow the Getting Started Guide for Laravel to understand each and every step. In this blog article, I have included adequate explanations on each step to enhance your knowledge on underlying concepts.
My Laravel Tutorials — from Scratch to Deployment
People who know me well know how much I respect and love the open-source community. As a person who always believes in a quality education which can be affordable for anyone in the world, I thought of documenting my Laravel knowledge in my tech blog under a separate tag: Laravel Tutorials. I hope you will find these articles helpful.
- Web Programming With PHP — Introductory Tutorial for Laravel Tutorial Series
- Laravel: Getting Started — Getting Started Guide For Laravel
- Laravel: Collaborative Development — Start Working With Laravel In A Collaborative Environment
- Laravel: Deploy Laravel Projects On Heroku — Deploy, Build, Run, and Operate Laravel Applications On Heroku Cloud Application Platform
- Laravel: Deploy Laravel Projects On Shared Hosting — Deploy Laravel 5 / 5.1 / 5.2 / 5.3 / 5.4 Projects on Shared Hosting Servers Using cPanel Options (Without Using SSH)
Remembering My Laravel Tutors
Good teachers are always a treasure. I learned Laravel on my own by following free resources available on the internet. If I am naming someone as my teacher, that is Max from the famous Youtube channel, MindSpace (now the channel is re-branded as Academind). He is a cool guy hosting many great educational web development content on Youtube. Apart from that, I always appreciate the efforts of tech enthusiasts, bloggers, StackOverflow and Laracast communities for sharing their knowledge with the world.
Some of my Laravel Projects
- AIESEC Sri Lanka Knowledge Hub — Online collaboration platform to create content, provide fast access to information, and store resources
- AIESEC Leadership Development Assessment (LDA) Web App — Online platform to assess the leadership qualities of AIESECers and provide insights based on AIESEC’s Leadership Development Model
- AIESEC CS Hall Of Fame Web App — Online platform to reward and recognize the contributions of the legendary members of the operations from AIESEC Colombo South’s history
- CSE Alumni Directory Web App — Information management system which lists the details of CSE Alumni members
- UOMx Peer Review Platform (Research Project) — Online platform which connects online learners and MOOC providers. Features: online assignments, peer-to-peer reviews, feedback, ratings schema
- Royal College Learning Management System & Online Resource Center — Online collaboration platform to share educational materials and provide space for students and teachers to interact
- Information and Project Management System for Digital Engineering Solutions (Pvt) Ltd. — Information management system which is used to simplify and automate the quotation handling, return management and project management tasks
- OREPA SC Knowledge Management System — Online platform for privileged members to handle school projects, membership info, event schedules, marketing materials, experiences, public relations
- Coding Millennials Blog and AshenLive Personal Website — Tech blog providing guidance on software and web technologies, dev tools, productivity and management tips. Features: blog, CMS, tag listing, portfolio, CV site
I built the first web application in my life using Laravel. Although I have no personal preference towards PHP, Laravel is still my first choice for the medium-scale-enterprise and not-for-profit projects. As a second year CS undergrad, I have earned around 3000 USD from a single Laravel project (in Sri Lanka) and have contributed to a considerable number of non-profit projects with Laravel.
Honestly speaking, Laravel is not the most fascinating web application framework I worked with. But Laravel was my first ;-) What about yours?
- How Laravel works — Image source: https://pbs.twimg.com/media/BvyPpvrIYAERdf2.jpg