Ask your Symfony questions! Pay money and get answers fast! (more info)

conversion from PHP site to symphony framework? Symfony

  • SOLVED

The site is currently live and is an on demand music streaming service with a backend that allows staff to upload music, add song titles. The code is currently in PHP5. I am looking for an estimate as to the amount of time it would require to re coding/integrating into symfony framework.

I am sure that there could be many variables here. However, I would like to get your thoughts on the amount of time it would take to accomplish this. We are getting bids currently and would like to know if we are getting fair prices. Thanks.

Answers (5)

2011-07-06

Russ Flynn answers:

This really is a hard question to answer without knowing anything at all about the design of the site, or its backend processes - but for pure top-of-the-head numbers, maybe this will help:

Setting up the login, authentication and role system - 1 week to 3 weeks depending on complexity
Implementing the global layout and master design - 1 day to 1 week
Setting up a single route and controller (end point) - 1 day or less if you have some code you can re-use from the old system.
Setting up a simple template for a single page - 1 to 3 days for something simple, assuming the old system used html or a non-php form of templating. If the templates in the old system were pure PHP based then it will only take time to write "good" templates - i.e. splitting things into partials, slots, etc. where necessary.
Migrating all your DB code to use an ORM - Difficult to estimate, perhaps 2 days for each table - but it really depends on the number of columns, data types, and the number of queries used around the site.
Backend/business model logic - no way to estimate this really. Since you have an existing site the code could be transferable, or it may need to be re-written
Forms - Assuming you can get the design from the old site, the form class would still need to be written and validation rules added - perhaps allow half an hour per form field for small forms and 10-20mins for larger ones to be on the safe side.

I'd like to ask for the reason for migrating also... Is it because the old site is badly written, or are you expanding and craving the help of a framework to grow?

Depending on the companies you are getting bids from, you will also need to consider time used for documentation, writing tests, meetings, bug fixing, design, etc. A bunch of freelance developers might tell you they can complete the work in a few weeks, but a professional job with a more robust base will undoubtedly take much longer.

Maybe if you provide a bit more background, like the number of routes, number of individual templates, number of forms, any special processes, complexity of design, etc.


randyklimetz comments:

thank you for the response. would it be possible to contact you directly to prevent from posting this publicly?

contact: [email protected]

or 404.375.5543

2011-07-07

David Joos answers:

Hi randyklimetz,

I'd suggest you to read this article on the symfony blog: http://symfony.com/blog/dailymotion-powered-by-symfony

It basically sheds some light on how a huge (!) website started migration to symfony - their approach is great as it doesn't involve huge recoding from day 1 of the migration process, as jobs are tackled in simple, phased steps. Definitely the way to go from my point of view and from a management point of view also a great option, as a phased approach gives them the opportunity to halt the project at certain points in time, based on budgets, and all other non-technical reasons :-)

Now, to answer your question from a technical point of view: unfortunately no one can give you an exact answer based on the specs you provided us - everyone can take a guess, but I'm afraid you'll only end up being disappointed afterwards.

Hope this helps!

2011-07-06

Marcos IbaƱez answers:

Hi Randy, I think that in order for us to be able to provide/help you w/ an estimate, you should give us as much information as possible on the site to build: I think a good starting point would be a list of Use Cases / Storys and the database schema you are currently using.
That's just for starters, the more info (screenshots, navigation details, test accounts, etc) you provide, the more precise the estimate you'll get be.

2011-07-06

Anurag Verma answers:

Hi,

The first question is how much are you aware of symfony. As symfony uses object oriented PHP, so it will easier for you to transfer the codes to symfony if your PHP site is in object oriented PHP. The amount of time this takes also vary from what are you need. I will say if you have create everthing from scratch it might take 4-6 months in setting up you database structure, design, if you are using some flash or javascript. If you want you website to remain up while you can write your new website in symfony way is to use <strong>Partial</strong>.
You can achive this by creating a module in your frontend application. And then in action class, create different functions like executeIndex, executeShow, executeMusicPage, executeArtists etc. and in your templates add partial files. In partial file you can just copy paste the codes from your current site. I can explain it to you in an example:
<strong>
action.class.php</strong>

<?php

class MusicActions extends sfActions
{
/**
* Executes index action
*
* @param sfRequest $request A request object
*/
public function executeIndex(sfWebRequest $request)
{

}
/**
*
*
*/
public function executeShow(sfWebRequest $request) {

}
public function executeMusicPage(sfWebRequest $request) {

}

public function executeArtist(sfWebRequest $request) {
}


<strong>Templates</strong>
<blockquote>modules/modulename/templates</blockquote> create a file <blockquote>_previous_site_quote.php</blockquote>

/* /modules/modulename/templates/_previous_site_quote.php */

<?php .....?>
<html>
<body>
<p> What ever is there in you previous site !!!! </p>
</body>
</html>


Now, as with the symfony norms you have to create a template page for the action you have created in action.class.php. For eg. for executeIndex() it will be indexSuccess.php.
In indexSuccess.php you can inculde the partial in following way:

/* /modules/modulename/templates/indexSuccess.php */

<?php include_partial('_previous_site_quote.php')?>


This way you can code symfony way side by side and your website will also remain online all the time. I hope this was helpful. Let me know if you have some doubt.

Best,
Anurag

2011-07-06

Nirav Ranpara answers:

Hi,

Approx Time: 1 Week
Approx Cost: $350