I didn’t go directly into making web applications in Laravel. And I don’t think anybody can without having some prerequisite knowledge about some concepts and tools. This blog is basically about the things I knew or had to know before I could say I was eligible to get onboard into Laravel team.
When I started on web development in college I had three options: Python, Ruby or PHP. I declined PHP after reading about its history and all it’s security loopholes regarding SQL injections and all. Choosing Python over Ruby was just random. They both seemed same to me. When I joined ColoredCow, everybody was working in PHP. These guys were actively working on WordPress and Laravel. I was doubtful why they decided to go for a dying tech instead working on a new and trending programming language. I knew there are legacy applications in PHP (just like COBOL), but building something new in PHP didn’t seem like a good choice to me.
Apparently, PHP learned from its mistakes. The later versions of PHP5 were setting a foundation for a much more awaited version PHP7, which is more than two times faster than PHP5 with lots of security enhancements. I decided to go with PHP as I became aware of the opposite side of the coin. It was beautiful. The barrier to entry is like zero. And guess what, Laravel doesn’t require core understanding of PHP. If you know the basics, you are set to go.
SQL is basic. If you don’t know about it yet, please skip this blog and read about it. Come back later.
The database queries are near English: “SELECT email FROM users”. I hadn’t used anything other than MySQL. The most popular Relational DBMS. Open source, huge community support, can be easily installed and get started with. Nothing’s more famous than these stacks: LAMP, WAMP, XAMPP, MAMP.
The funny part. What I didn’t know about was the tool. I used to think MySQL only comes with these stacks. You can install it independently also. On top of it, I thought it was a proprietary software of Microsoft. Had it confused with SQLServer when I was just a beginner.
If you’ve previously worked in one of Java, Python, C++, Ruby, PHP you might know the concept already. Knowledge about namespaces, classes, methods, properties, instances and a few other terms, if you get these concepts, reading the Laravel code will be a piece of cake. Better if you know how to define these things in PHP’s syntax.
Some people can put this aside and skip as a pre-requisite. I personally feel that knowing about MVC architecture already, helped me quickly get the Laravel’s structure. I already had coded before in vanilla PHP and WordPress. I didn’t have any experience with MVC until I read about it. Theoretically, it’s simple. Practically, it’s even more. Knowing how models, views, and controllers work and how your application needs to be structured, which code should be in a separate file, which code should come in a separate class or method, how to handle your database through the code, and other best practices. Knowing these little things can help you not only create a new Laravel project but also minimizes your entry load in any existing Laravel application also.