I find myself with a few projects in mind that would benefit best from custom development rather than hacking WordPress or some other web app. I have some basic PHP knowledge, but little to no practice. I did front-end development for a year an a half on a project that used CodeIgniter so I caught a few bits and pieces from there too (and I have a friend that can lend a hand when needed). So I come to you for advice on what framework I should try to work with.
The criteria for the selection are:
it must be simple (so that a newbie like me can get things done)
it should have a decent documentation
must handle at least basic security (the main reason I don’t go vanilla)
must have good support on share hosting (no out-of-this-world dependencies)
Overall I need a Bootstrap for PHP, with some well engineered components that I can piece together while also being able to tinker with them. It would be good to know if I ask for too much either, rather than keep searching for chimeras.
It was meant to be an analogy. I need a framework that can be for PHP what Bootstrap is for front-end development: simple to use, lots of components that do their job well enough but can be tinkered if needed.
I will continue with that if I can’t find anything better. But I thought it’s best to ask first.
I have used CodeIgniter for many years and also tried quite a few other Php Frameworks, all which seemed far too complicated for my needs. Support and security is very good. Documentation and backward compatibility is excellent.
I had a large project to do last fall that I didn’t want to use vanilla php for, so I started to learn Laravel. I love this framework but realized that with my tight deadlines I wouldn’t have enough time to get up to snuff with it, so I switched to CodeIgniter. I will definitely go back to learning Laravel, but for ease of use CodeIgniter is great, the documentation is great and the people using the forums there are very helpful and timely in their responses. I would definitely recommend CodeIgniter.
Don’t use CodeIgnitor. CodeIgnitor is an aniquated pile of trash when compared to modern alternatives such as; Symfony and Laravel. I’ve inherited a CodeIgnitor project after having worked with several other CMS and Frameworks and development is painfully difficult cause the framework doesn’t really do anything. Also the initiative to revamp it is just a bunch of political bs… it is trash. Use any other framework that leverages composer (dependency management), namespaces, and MODERN design principles like dic (dependency injection container).
I disagree. Support and documentation is horrible. The entire CI ecosystem is drying up. Developers whom care about code quality have moved on. I mean using that stupid f**kin loader and dump ass front-end controller are enough to make me go mental with all the better alternatives/approaches available. Not to mention lack of namespaces. Also the stupid proprietary god classes which are basically just functions wrapped in a class. Libraries, helpers, plugins… (no namespaces or PSR naming auto-loading)… the whole is is stupid. No asset management or HMVC… ahhh. It is really built for nothing more than stupid, short-sited development. Code Ignitor is kind of like a little baby, cute but really completely useless.
I am not looking to build the next Facebook. One of the projects I plan to build is to unify my websites (presentation, blog, projects) in one place instead of three subdomains as I do have now. However WordPress is too complicated, the layouts of existing themes are too much hassle to code around. I want to have complete control just like building a static site by hand. And I am indeed considering the option of a static site generator, but that’s another topic.
in light of all it was said, what is your recommendation? I am not looking for a bragging match between frameworks, but to find something suitable for my needs.
@Mittineague: I actually learned PHP together with HTML and CSS during Uni, thirteen years ago. But I never went beyond the basics. I did hack a few WP themes a while back, I did front end for websites built on MVC frameworks (worked with Zend, Symphony, CodeIgniter). I don’t want to go too deep because these projects are things that won’t make me money (at least in the next couple of years) and I won’t be able to spare much time for them. Hence the analogy with Bootstrap I used at the beginning.
My recommendation would be Laravel or Symfony. Both frameworks have a large ecosystem of resources (docs, community, extensions) and implement modern design patterns,
I assume you mean that each of those sites are completely separate from one another and you would like to make them all one single site under a single code base. If that is the case I would say that some platforms work better for some things than others and it isn’t always necessary or even appropriate to bring everything together. For a blog WordPress is a good solution. For the other components another CMS might be more applicable. I guess it all depends. At the end of the day as long as the code is open source anything can be done like sharing user accounts across platforms, etc. Instead using a CMS solution that provides an admin and all your typical base functionality have you considered the amount of time it is going to take to build an admin for editing pages, users, etc? Are those the types of features you are going to need? Perhaps for your specific case a CMS is more suitable than framework, perhaps. A blog and portfolio can be built on any out of the box mainstream cms. There is nothing special about either of those requirements. Nothing that really warrants the time involved to build that functionality from the ground up using a framework instead of a cms.
I didn’t say anything about making an admin for this project. For this specific one, for example, I need just to be able to get a listing of the blog articles in the homepage, or add some tags and categories. Maybe write the content in Markdown and parse it instead of using a database.
My suggestion is simple: Copy/paste the title of this thread into a browser search bar and read the first 500 or so of the resulting unique links. This will quickly yield several dozen frameworks which meet your criteria. Each framework will have their passionate advocates as well as their loud detractors.
Do you mean user authentication module or just resistance to being hacked?
If you want to make simple web sites then a micro-framework might be a good idea. Silex is worth looking at, based on Symfony components it’s actually quite easy to get started with and it has an authentication module built in and modern architecture. If you want some advanced tinkering or switching of components then you need to be somewhat advanced in PHP but for basic needs the examples on their web site are pretty easy to follow.
Laravel’s micro-framework is Lumen and there’s also Slim framework - I haven’t used them but they are also modern and opinions are rather positive.