I love doing HTML/CSS/Javacscript, but what happens when you want to create a project that WordPress can’t handle? Beside finding someone who can do it I mean.. Well you have to learn new stuff and this is how I immersed myself in more complex back-end work.
Making a framework choice
Where do I start? like anyone I guess, I check for the best framework to learn. Obviously I am not going to create my own MVC framework, some of the best php guys are already doing that (And also I suck at doing php). And I am not going to use a CMS, not enough barebone to do an app, less extensible and also more security problems (plus I hate Joomla and Drupal). So I browse the web, django, ruby on rail, Zend, Symfony, so much languages and frameworks, so much choice!
In the end I decided to stay with php, I already know php a bit and learning an entire language felt like a waste of time, I ni mi ni ma nimo, I stop on Kohana and Symfony.
Kohana feels like jQuery I would say, I can do some basic stuff quite easily.
Symfony, feel a bit like Dojo, it’s effing huge, and not as easy as Kohana.
That being said, Symfony had a lot of features I wanted, a bigger community and a better documentation, so in the end, Symfony won my challenge. Diving right into it, I start the Symfony in 24 days book. Okay, so yeah, setting up environments check, learning a bit of the ORM check, learning a bit of the command system check, Okay my head hurts now.
Don’t even get me started with the Symfony form framework, I really hate how they automatically generate your forms. That being said, it still is really useful, the idea is to generate a form linked to your database table, so this make it really easy to save new entries.
In fact it look like this: $form->save(); .. yeah that easy. Like I said I am not a fan of how they automatically generate the form with table though, but you can mold it as you want, and generate each label and input separately.
My head is being pounded
You really can’t be efficient when you’re learning, getting stuck each day at doing something that should be easy.
Who knew doing back-end was so hard! You got to manage Cron, sql, orm, MVC frameworks, routing… I feel like I should have started learning this a long time ago. When I was in school has a Multimedia Integrator I learned ASP (not .net), a pure waste of time. Now they learn PHP but I’m not even sure if they even have any remotely idea of what MVC mean, which is bad, as most of everything they do will be in front-end developer will be in a similar environnement.
The documentation
Probably the best thing about Symfony is it’s documentation. You get a crazy amount of information from the get-go. With one of the free book, you can create a job posting website in 24 days. I used a lot of information from this book to create my application.
It really give you a good feel on how the anatomy of any application should be like using Symfony.
Symfony as a framework of choice for front-end developers?
I found in Symfony what I guess most people found in Ruby on rails from what I read on the web. The framework really give you the tools you need to create web application, so you can really concentrate on your app instead of focusing on integrating swift mailer, managing your database relations and others. It really gives you a big abstracted layer of everything you will need to create your next thing.
But I also saw a lot of front-end developers on twitter doing ruby and django, I guess it is a matter of taste after all…
if you love javascript… why not use some server side JS? There are loads of frameworks but this one might serve as a nice start: http://expressjs.com/ (anything for nodejs(.org) gets my vote )
expressjs seems nice, but still, we re far from of doing rapid development with nodejs. expressjs is still pretty bare bone compared to big framework out there.
Maybe in a couple of years,
Not saying that it couldn’t be done, but I wouldn’t feel comfortable launching a paid application on node.. currently 😛
Framework is not a solution when you can’t program at all. Learn how the frameworks work, what is the lifecycle of web request and how it evaluates into response code, how server works, how database engine works, (…), and then start diving into frameworks. This is quite hard to do, because as a front-end developer you have only JavaScript and you operate on an existing DOM structure. When approaching backend, you have dozen options of what you can do, and even more options that allow you to achieve the result.
I’m not sure I quite agree,
There is a lot of people that think like you on jQuery vs Javascript for newbie.
I think a beginner can learn a lot more from jQuery at first and further expand their knowledge on pure javascript. Now I don’t want to start a contreversy here. yes you should know javascript before using jQuery.
But from what I saw, you can’t get student to like cross browser compatibility and prototype from the start, you need to give them a way to achieve something, whatever small it is.
The base idea is to start easy and expand later.
That is not to say that I am completely clueless in backend/servers, this blog was hosted at a time on a self managed box that I configured myself.
Now that begin said, I understand your point of view, and ideally I would agree, but I prefer learning doing a project in a framework and do mistakes, that trying to learn concepts with no end results.
Gee, a job posting website in 24 days….. lol…..
Gotta luv php…..
You gotta love Codeigniter. 2.0 codebase looks even more solid, on the same stage as most elite php 5 frameworks. It is my choice.
As a frontend developer I also enjoyed Kohana and Codeigniter, back when I had to do “all the work”. CI has a great documentation, but Kohana has more features (since it’s fully community managed)
@dbrant, well, its a one hour a day tutorial…
@Bip well symfony2 look rock solid too 😛
I heard a lot of people comment on the power and flexibility of Symfony but I found trying to learn it akin to having someone smash my face in with a rusty crowbar. It is not very newbie friendly to say the least 😛
IMO CodeIgniter > Symfony. It’s a lot easier to get into, a lot more streamlined to get up and running and won’t give you aneurysm trying to learn it 😀 Plus, if you do ever want to go with a CMS, you can use ExpressionEngine. It’s very powerful and built using CodeIgniter, making developing plug-ins and modules a snap and keeps your development environment consistent.
Anyway, would love to hear more about your experiences with Symfony as you get into it! Maybe I’ll want to check it out again.
I’ve tryed a lot of MVC frameworks, i’ve worked with Codeigniter for some time, but then I discovered Yii (http://www.yiiframework.com/). I’m totally amazed by how well it is written and I use it for all my projects now. You should try it. It as a web based code generator that help you build the base of your web app in no time.
Drupal is one of the best web developent tools, i have been working with Drupal since version 5 and its a very strong tool.
It has a lot of features done, such us user management, blocks and templates, there is no need to re invent the wheel….symfony its a great framework but you waste a lot of time programing forms for example, and with drupal and webform you can do it in 30 minutes….or less….
Anyway its your and my point of view.
I’m developing iphone and android interface with this POWERFULL framework. Works very very well.
After read blog topic’s related post now I feel my research is almost completed. happy to see that.Thanks to share this brilliant matter.