code_monkey
code_monkey

Reputation:

Modular php application development

We are a small team of developers planing to develop a php application. (let's say a CRM system)

Our main goal is to make it a plug-in-enabled application so that clients' developers can write plug-ins add new features to the system without changing the application's core code.

These changes may include: 1) adding new features: more likely adding a new page and creating a new database table and and implementing new operations such as add/edit/display data.

2) editing existing functionality (e.g. we have a list of users, they might need the user name to be a hyperlink and open a light box with user information)

Since this is going to a medium to large-scale application we need to plan it carefully.

At the moment our plan is to write the core application structure and implement the requirements as plug-ins, so that each time a client needs a change we only need to upgrade a specific plug-in.

I just need the gurus here to give us some ideas or links to look at before we start.

The final question is “how to build a plug-in-enabled PHP application?”

Thanks all...

Upvotes: 0

Views: 283

Answers (4)

gkrogers
gkrogers

Reputation: 8356

please check the following url
http://ellislab.com/forums/viewthread/67697/

Upvotes: 0

Keltia
Keltia

Reputation: 14753

I second the opinion on using a framework like Symphony. It provides a better structure for any application, give you a cleaner and modular app. I'd even advise you to use another language but that is outside the scope of the question :)

Upvotes: 0

Karsten
Karsten

Reputation: 14642

Write well-structured, reuseable OOP-Code - define an abstract plugin class or interface.

Upvotes: 0

stunti
stunti

Reputation: 855

I would say try to use an OO framework (zend framework, cakephp, symphony) and create a configuration (xml based) to tell the loader which class should be loaded) that mean you can redifined class when you need to add a functionality to an existing feature or load new class.

Magento for instance use this approach to allow plugins.

But without more informations that's hard to tell.

Upvotes: 1

Related Questions