There is no thing best in the world. If something is best, it means, others simply wont exist and if exist, won’t survive.
Same is true for PHP frameworks. Presence of multiple frameworks is proof that no framework is best. So how will we select right framework for our next project?
I am Kapil Sharma, Technical Architect at Eastern Enterprise, with 10.5 years of professional experience in web application development, using different programming languages, CMS & frameworks. This article mainly shows how do I select framework for my next project. Personally I have worked with Zend Framework 1 (not 2), Symfony 1 & 2, Code Ignitor (not working any more), and Laravel 4 & 5. So I might not be the right person to compare all frameworks but it doesn’t stops me selecting right framework for next project, does it?
Please note, this article list down my points for considering framework for next project. There could be many who might not agree with me, and I respect their views.
To keep article short, I am assuming we already selected PHP as programming language and ruled out CMS. So only PHP frameworks are considered in this article.
Welcome to the first blog post under Laravel learning notes.
I am Kapil Sharma, Technical Architect at Eastern Enterprise and working on web technologies since last 10 years. You can find more about me on my personal website kapilsharma.info or contact me through twitter @kapilsharmainfo or contact us from on website.
I am publishing my notes I made for personal reference while learning laravel. Although I do not include very basics of language in my personal notes but since I’m publishing these notes, I’ll add some more basics here for those trying to learn laravel using my notes.
In these notes, I’m going to cover all the basics of laravel but I do expect readers have moderate to good understanding of PHP. Knowing any other MVC framework is not essential but good to have as I’m not going to cover basics of MVC design pattern. If you don’t know or understand MVC, just google it a bit.
First step while learning anything new is to install the tool, in our case, laravel. We will install laravel through composer. Using laravel (or probably any other PHP project) using homestead or custom vagrant box is recommended in professional development environment but that is currently out of scope for this post.
We mostly use composer to install laravel. Composer is the dependency management tool for PHP. Dependency management tool basically read a configuration file to identify all the project dependencies and install them. Assuming you do not have composer installed, lets first install composer. (more…)
On Friday, I posted a tweet.
That was just casual tweet followed after some other instances. But when I reviewed my week’s tasks (it include nearly everything I did over weekend) I realize I’m complaining. I immediately replied to myself:
That mean either I should try to fix it or just keep quite. This is the starting point to think how I can help to fix this problem. There are many huddles like:
- PHP frameworks lie in three categories; Micro framework, Full fledges framework and component based.
- Their target audience is different, some framework provide basic features and target small to medium projects while other target enterprise applications. How a common solution is provided for such a wide targets.
- There are many kind of people, some like to go through theories first and someone prefer to start doing things first and prefer learning by doing things. There are others who go for mixed approach. There are many who prefer to go through any available project example and learn by going through existing code. Symfony really made it easier through jobeet project and frankly I’m impressed by that approach.
Obviously no one can give one common solution. Still after considering quite a few facts, I personally feel if we have one example project implementation with us, learning become easier. So my Fix is:
In this part, we are going to setup following:
XDebug: XDebug is used to debug PHP code and easily integrates with leading IDE like Netbeans.
Phing: Phing is PHP project build tool, based on Apache ANT.
Composer: Composer is new dependency management tool in PHP world.
(Edit) Code Sniffer: Check if your code is following standards. You can define your own standards.
Again to remind, this is not tutorial for given tools, we are just setting up the environment with these tools. Respective website is the good start point if you want to learn more about these tools. In future, I’ve plans to make a simple kick start tutorial for these tools but till then, go through official documents and Google for tutorials on these tools. (more…)
I regularly visit forums, stack overflow, IRC channels to ask questions and giving back open source community whatever possible for me. Obviously I learned much from those places and owe them. One of the common questions asked on community how to setup development environment. Obviously not basic one but advanced like how to setup Pear, Composer, XDebug, PHP Unit etc. All these are vital tools for development. So I’m trying to cover all these common questions on one single post.
Please note here I’m setting advanced PHP development environment on Windows 7.
Lamp developers work on open source technologies. We proudly say that we support FOSS (Free and Open Source Software) movement. How still several open source developers work on Microsoft windows, which is a proprietary operating system from Microsoft and putting its user’s freedom at stake.
The reason most users use proprietary operating system is they feel (although its not true) that learning linux is not easy. No doubt learning new OS need some time and patience but still it is not a rocket science. If you wish to start development on Linux, this document will help you to setup PHP development environment on Open SUSE 12.1 on your Laptop (Well it will also work for desktop). However be prepared to download some software (approx 2-3 GB) and prepare CD/DVD of them.
Choosing a PHP framework is not an easy task, especially if you have relatively little experience in PHP to know what makes a good framework or and what doesn’t, but choosing the right PHP framework for the job is absolutely critical in the long term as choosing the wrong PHP framework can lead to a number of negatives, such as longer development time, need for more experienced staff who may be hard to find and of course performance problems. Unluckily (or perhaps luckily) when it comes to PHP there is such a plethora of PHP MVC Frameworks that it’s damn hard to actually boil them down to the final choice. With ASP.NET for example it’s quite easy (although it’s gotten a little more complicated lately), previously there was only ASP.NET but now there’s also ASP.NET MVC, which is very different development paradigm and has it’s own catches. However, one thing with .NET is that you need to choose how you’re going to do your data access, etc, but with most PHP Frameworks there is usually only one or two ways and they tend to do the job quite well. So, now with this brief introduction, here’s the thoughts on Yii Framework (1.1.5) vs Zend Framework (1.11.0) vs Code Igniter (1.7.2).