Hi,

I am newbee and study ZF and I would like separate Model logic to another
tiers Service and Dao. Application assumptions that service and dao tier
will be shared and accessed from any module. Dao object is object extends
Zend_DB. Service will be my implementation.

Application filesystem:

|- application/
|       |-  modules/
|              |-  moduleA/(there is classic ZF structure: controller,
model, view)
|              |-  moduleB/(there is classic ZF structure: controller,
model, view)
|- service/
|- dao/

The goals of this approach:
- Service object is just responsible to comunication with dao tier, dao does
not know about Service
- Model in concrete module will invoke service metods to get results from
db, service does not know about Model logic in modules
- Service will be my implementation (one ServiceConsumer object will be able
to invoke concrete service,
ServiceConsumer->getAllServicess()->getServiceModuleA().createPerson(Array
$personData))
- Service can be shared, so model of moduleB can via ServiceConsumer invoke
serviceModuleA
- Dao object is Zend_Db object (dao extends Zend_DB),
- possibility to change Dao tier anytime (mysql, mssql, posgre etc.), 

My problem is : 

How to bootstrap this enviroment? 
1. if application bootstrap/run, each Model would be able to call
ServiceConsumer object and get required service, for example:
ServiceConsumer->getAllServicess()->getServiceModuleA().createPerson(Array
$personData)

2. ServiceConsumer must be invoked in bootstrap process ZF to set up Service
enviroment, I mean, ServiceConsumer has to find, set up every service object
(in service directory) and be able to invoke these service objects after
boostrap process from any Model from modules.

I think about something this way:
- ServiceConsumer must iterate over service directory and every service
object set into within itself via setter metod to be able to provide
serviceModuleA to via getter.

QUESTIONS
A. IS THERE POSSIBLE TO MAKE THIS APPROACH IN ZF?  (I mean auto instancing
and preparing service enviroment in bootstrap process)?
B. IS THERE SOMETHING PROBLEM TO MAKE THIS APPROACH IN ZF? (I mean, ZF model
is not prepared, or is not allowed for this approach, or it is solved
another way... etc. )
C. IS IT REASONABLE TO SEPARATE TO ANOTHER TIER? (maybe ZF already implement
this approach and I do not know)?


Thanks for your answers


-----
Enviroment
==========

OS:
SUSE Linux Enterprice 10 (i586) - version 2.6.16.60-0.27-smp
Windows XP

Tomcat v6.0.16
Java(TM) SE Runtime Enviroment (build 1.6.0-b105)
Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode)
Maven v2.0.9
Apache 2.2.11
MySQL 5.1.30
PHP 5.2.8
qooxdoo-0.8.2
Python 2.5

Hudson:
=======
version 1.304
plugins: Maven 1.304, SSH Slaves
running: deployed in Tomcat

front-end developer web-based application
A.S.E.I. [http://www.asei.cz]
-- 
View this message in context: 
http://www.nabble.com/Another-multitier-approach-SERVICE-and-DAO-tp25092353p25092353.html
Sent from the Zend Framework mailing list archive at Nabble.com.

Reply via email to