Decoupling Zend Framework

Discussion about the PHP backend based on Zend-Framework
User avatar
fgsl
Tine 2.0 Community Contributor
Posts: 86
Joined: Thu Jul 07, 2011 1:24 pm
Location: Brazil
Contact:

Decoupling Zend Framework

Postby fgsl » Tue Mar 24, 2015 3:05 pm

Hi, friends.

I would like to talk about an improvement of general architecture of Tine 2.0, related to Zend Framework dependency.

In fact, my concern appeared when I had a problem with WebDAV requests. Searching for that, I found a issue about:

https://forge.tine20.org/view.php?id=5778

I saw that it was necessary to create a fork for Zend\Http of ZF2, for allowing methods of WebDAV that are not defined by HTTP RFC.

Well, Tine 2.0 already has forks of ZF1 classes and this froze classes for 1.9.5 release.

Now, we are using Zend\Http component of version 2 and againg must to fork former code to keep Tine 2.0 stable.

There are a conflict between a dependency, that evolves as desirable for a open source project, and the stability of Tine 2.0. In addittion, needed adaptations increases complexity of software and make more difficult to maintain.

I would like to suggest a guideline forward, to avoid that evolution of dependencies requires forks. This guideline would have some rules for refactorings and new implementations.

1) No application can directly use a Zend Framework class. It has to use only classes from Tinebase or Tine Framework.
2) Tinebase extends and uses original Zend Framework classes.
3) Forked Zend Framework classes must be extended or used by Tine Framework.

What is Tine Framework? It's a point for encapsulate conflicts between what is implemented by Zend Framework and what Tine 2.0 needs.

I am thinking to write a patch set to start this decoupling and show what exactly is that Tine Framework. Case of WebDAV motivated me start with method signature for requests. Instead of Zend\Http\Request, we would use Tine\Http\Request.

I drew a general idea about this decoupling. What do you think about it?

I think that we can avoid future problems with adoption of another ZF2 components (or from another frameworks)
Attachments
proposal_zend_decoupling.png
proposal_zend_decoupling.png (69.93 KiB) Viewed 1160 times
Flávio Gomes da Silva Lisboa
BS in computer science postgraduate degree (enterprise applications, OOP and Java technology)
Zend PHP Certified Engineer
Zend Framework Certified Engineer
Zend Framework 2 Certified Architect

User avatar
ph_il
Tine 2.0 Core Developer
Posts: 4185
Joined: Fri Mar 07, 2008 10:41 am
Contact:

Re: Decoupling Zend Framework

Postby ph_il » Wed Mar 25, 2015 6:53 pm

hi Flávio,

that sounds like a very good idea. i would like to talk about this with the team in the next week (Lars is currently on vacation) and we'll give you feedback afterwards.

LLAP

Philipp
Philipp Schüle
Tine 2.0 Core Developer

Visit http://www.tine20.com (commercial support, consulting and development)
Visit http://www.tine20.net (Tine 2.0 hosting)

SOWIWAS
Posts: 151
Joined: Mon Nov 14, 2011 12:51 pm

Re: Decoupling Zend Framework

Postby SOWIWAS » Wed Aug 02, 2017 12:25 pm

Any news regarding this one?

To be honest I am a little concerned that the tine still appears to use ZF1 because of the last official update about a year ago. Because of that concern my personal question is: Is the tine up for the challenge of code erosion?
Grüße

User avatar
fgsl
Tine 2.0 Community Contributor
Posts: 86
Joined: Thu Jul 07, 2011 1:24 pm
Location: Brazil
Contact:

Re: Decoupling Zend Framework

Postby fgsl » Wed Aug 02, 2017 6:29 pm

Hi, SOWIWAS.

Fact is that Tine 2.0 has a large legacy and it is hard to convert what exists today to new components with all different architecture at same time that is needed to maintain current product working.

Best alternative would be to create a new project from zero, reusing only knowledge no source code.

Last year when I still developed a forked version of Tine 2.0, I proposed to my team a new Tine (3.0?) development project, but unfortunately there were changes in company where I work and management board decided that Tine 2.0 use will be gradually discarded.
Flávio Gomes da Silva Lisboa
BS in computer science postgraduate degree (enterprise applications, OOP and Java technology)
Zend PHP Certified Engineer
Zend Framework Certified Engineer
Zend Framework 2 Certified Architect


Return to “PHP backend discussion”

Who is online

Users browsing this forum: No registered users and 1 guest