Monday, July 29, 2013

Dealing with big cakephp applications

Hello

In my company, we develop software with cakephp for internal usage. The software is getting big for managing it as a single project (46 controllers, 94 models), and we've been thinking about splitting it in two or three different software, each to manage one different domain of the big picture (like, a system for user and permission management, other for projects, other for financing).

However, there is the need for those modules keep comunicating. For instance, a report will need to get for all projects belonging to user X the current balance - That would need at least three models in three different modules. If I would be working with three different and independent cakephp, either I need to (1) get a copy of models from the other software, or (2) communicate via webservices.

(1) is faster, however, I'll have a huge number of models anyway. Not to mention, as business rules are in the models, when one is updated, it must be copied to the other systems, causing a maintenance nightmare.

(2) is ideal as it really encapsulate responsabilities, however it is slow. For instance, if I make a find on model Projects, each having a list of people linked to it, I'd like to bind those models. As far as I know, there's no Webservice Datasource, so I'll need to do it by hand.

I'd rather (3) have everything deployed in one big cakephp installation, but maintain my repositories apart; however it would difficult testing. But I guess that, when working with big problems like that, you really have to face some difficulties.

What are your thoughts on that problem?

Thanks!

--
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP
 
---
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@googlegroups.com.
To post to this group, send email to cake-php@googlegroups.com.
Visit this group at http://groups.google.com/group/cake-php.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

No comments: