Jump to content

Custom vs opensource


gvp16

Recommended Posts

I know this question has probably been asked over and over but im interested in getting some opinions in my particular case.

 

I need to develop a system which will be used to generate custom content for a website. There isnt anything over complicated taking place but that doesnt mean there wont be either! Im talking database queries, and some logic. So the question im asking my self is to write a custom application (mvc) or use a frame work. But before everyone starts chanting to use a frame work consider the following points.

 

Reasons to build custom:

I am the only developer in the company, and will be for some time.

Some of the modules needed will be very bespoke and I need full control over everything.

I dont currently know any frameworks and will have to learn one, during this time I could complete half the application (made a small start on it) and have plenty of other things to do.

The application would be build for its purpose and nothing else.

It will be well documented so should I new developer join the team (or replace me) then along as they have an understanding of php mvc they should get on fine.

I would enjoy it to be honest!

 

With that in mind I am fully aware of the benefits of going open source, eg CodeIgniter, cakephp etc...  

Community help, plugins, lightweight, learn new skills etc...

 

Im just trying to decide what will be the best option here and if anyone else has had a similar situation.

 

Thanks.

 

 

 

Link to comment
Share on other sites

I am the only developer in the company, and will be for some time.

You need a framework BECAUSE you are the only developer in the company. This will make it easy for the company to find someone after you leave or to help you develop it. It's easier to put out a job ad "Knows framework X" then to put a general job ad saying "Knows PHP and willing to learn in-house framework that you will NEVER EVER use again in the rest of your career and is thus of zero-use to you but our business depends on it."

 

Don't be lazy, and don't take shortcuts, learn a framework, I highly suggest symfony as that means half of your application will be written by simply installing a few bundles from KnpLabs and FOS. So, you have all the time you need to learn symfony.

Edited by ignace
Link to comment
Share on other sites

  • 3 weeks later...

In addition to what ignace said:

 

Don't build your own unless you're an experienced developer who's worked and read a lot of other people's frameworks AND there's a good reason for building one from scratch. Building your own should come from a specific need and experience, not from not being willing to learn something new. 

 

Also, you'll find yourself reinventing the wheel, there's not really a good reason from that. You'll learn more from reading other people's code than from figuring stuff out yourself.

 

In case you're already familiar with a different language and work with PHP now, please, don't build a framework based on what you saw in another language. It results in solutions that are totally counter-intuitive in PHP and feel awkward in many situations (speaking from experience).

 

I personally started with Zend - it was pretty hard when I started out, but it also gave me some solid fundamentals and I learned a lot. I appreciate that now.

Link to comment
Share on other sites

I know this question has probably been asked over and over but im interested in getting some opinions in my particular case.

 

I need to develop a system which will be used to generate custom content for a website. There isnt anything over complicated taking place but that doesnt mean there wont be either! Im talking database queries, and some logic. So the question im asking my self is to write a custom application (mvc) or use a frame work. But before everyone starts chanting to use a frame work consider the following points.

 

Reasons to build custom:

I am the only developer in the company, and will be for some time.

Some of the modules needed will be very bespoke and I need full control over everything.

I dont currently know any frameworks and will have to learn one, during this time I could complete half the application (made a small start on it) and have plenty of other things to do.

The application would be build for its purpose and nothing else.

It will be well documented so should I new developer join the team (or replace me) then along as they have an understanding of php mvc they should get on fine.

I would enjoy it to be honest!

 

With that in mind I am fully aware of the benefits of going open source, eg CodeIgniter, cakephp etc...  

Community help, plugins, lightweight, learn new skills etc...

 

Im just trying to decide what will be the best option here and if anyone else has had a similar situation.

 

Thanks.

 

This depends highly on "who makes the decisions" about what the site/project is able to do.

 

If management is willing to accept that a module may not be available for the requested functionality, a framework should do fine.

 

If management is NOT willing to be told this, you will either need a good customization module for the selected framework, or you'll end up turning your framework-based project into a hybridized installation that loses the benefits that you chose the framework for in the first place....

 

My two bytes ;)

Edited by dalecosp
Link to comment
Share on other sites

You need a framework BECAUSE you are the only developer in the company. This will make it easy for the company to find someone after you leave or to help you develop it. It's easier to put out a job ad "Knows framework X" then to put a general job ad saying "Knows PHP and willing to learn in-house framework that you will NEVER EVER use again in the rest of your career and is thus of zero-use to you but our business depends on it."

 

Don't be lazy, and don't take shortcuts, learn a framework, I highly suggest symfony as that means half of your application will be written by simply installing a few bundles from KnpLabs and FOS. So, you have all the time you need to learn symfony.

 

I disagree. If you build your own framework and document the code well, it'd be quite easy to build documentation with tools like apigen or phpdoc, making it easy for developers to understand. Actually, doing that is anything but lazy.

 

Also, say a big company like facebook uses their own framework(if not, the example still stands) which is proprietary. So if I get hired by facebook and later decide to leave, will my knowledge of that framework be 100% useless? In a sense, yes, but only in the sense that I can no longer use their framework. What matters is that you get to broaden your horizons and open up your eyes to new perspectives. That is what PHP and programming in general is all about: learning, creating and then doing it better, over and over again.

 

Nothing is ever useless if you put your time and effort into it, trial and error.

Link to comment
Share on other sites

My question is, Do you even need to use a Framework for this project in it's current state?

 

 

I need to develop a system which will be used to generate custom content for a website. There isnt anything over complicated taking place but that doesnt mean there wont be either! Im talking database queries, and some logic. So the question im asking my self is to write a custom application (mvc) or use a frame work. But before everyone starts chanting to use a frame work consider the following points.

 

From what you have stated here it seems that a framework may be overkill for adding a bit of logic to pull some content from a database or a simple CMS to add content. You could put that together in a few hours. If your project specification is complex, then yes, I would use a framework. I would definitely not reinvent the wheel and write my own. IMO this will take longer to do as opposed to starting with a framework that has good documentation such as CodeIgniter. 

 

It seems to me that you are wanting to learn how to put a framework together. This is good, however I would do this as an exercise after working on this project. If you use a current framework you will get an idea of what needs to go into it. It will be a good exercise to improve your skillset, but it will take a bit of time.

 

 

Some of the modules needed will be very bespoke and I need full control over everything

 

This is not an issue. Frameworks are adaptable and extendable. If you have never used a framework I think you are just assuming that you won't be able to do something.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.