Re: Re: frameworks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Jan 31, 2009 at 2:16 PM, Nathan Rixham <nrixham@xxxxxxxxx> wrote:
> Eric Butera wrote:
>>
>> On Sat, Jan 31, 2009 at 1:12 PM, Nathan Rixham <nrixham@xxxxxxxxx> wrote:
>>>
>>> Eric Butera wrote:
>>>>
>>>> On Sat, Jan 31, 2009 at 12:06 PM, Shawn McKenzie <nospam@xxxxxxxxxxxxx>
>>>> wrote:
>>>>>
>>>>> Eric Butera wrote:
>>>>>>
>>>>>> On Fri, Jan 30, 2009 at 7:14 PM, Kevin Waterson <kevin@xxxxxxxxx>
>>>>>> wrote:
>>>>>>>
>>>>>>> On Fri, 2009-01-30 at 18:03 -0600, Shawn McKenzie wrote:
>>>>>>>>
>>>>>>>>  From what I could tell, this was
>>>>>>>> the best RAD, however if you prefer to lay everything out your own
>>>>>>>> way
>>>>>>>> and do things your own way then probably CI or Zend.
>>>>>>>
>>>>>>> I use Zend every day in my current employ.
>>>>>>> It is like pulling teeth and its feature set is not as rich as
>>>>>>> they would have you believe.
>>>>>>> Zend DB is pathetic
>>>>>>> Zend Form (although not from Zend itself) is abstraction for
>>>>>>> abstractions sake and is mind numbingly complex.
>>>>>>> The lack of a model loader is laughable.
>>>>>>> The list goes but you get the point, this is supposed to be from
>>>>>>> "the makers of PHP" and is supposed to be a mature framework and
>>>>>>> ready for enterprise level applications.
>>>>>>> What a joke.
>>>>>>>
>>>>>>> but, just my $0.02
>>>>>>> Kevin
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> PHP General Mailing List (http://www.php.net/)
>>>>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>>>>
>>>>>>>
>>>>>> And what exactly do you expect for the model layer?  That's the part
>>>>>> you are supposed to write on your own.
>>>>>>
>>>>> Supposed to?  Who says?  The DB yes, but if you design the DB correctly
>>>>> and want your models tightly coupled with the DB, then it is an useless
>>>>> step to create the model yourself.
>>>>>
>>>>> Zend has a Zend_Tool script in the incubator that does project and some
>>>>> code gen.  Reading the plans they plan to include model generation as
>>>>> well.  It will probably be a while in coming though.
>>>>>
>>>>> To me, right now Zend is just a more professional and consistent PEAR,
>>>>> but with fewer features.
>>>>>
>>>>> --
>>>>> Thanks!
>>>>> -Shawn
>>>>> http://www.spidean.com
>>>>>
>>>>> --
>>>>> PHP General Mailing List (http://www.php.net/)
>>>>> To unsubscribe, visit: http://www.php.net/unsub.php
>>>>>
>>>>>
>>>> Model != database.  I made this mistake for years, but no more!  :)
>>>> Models can persist data, but a model is supposed to be the business
>>>> logic of your app.  It's a set of rules.  So how could any tool
>>>> generate your app for you is/was my point.
>>>>
>>>> Take an ecommerce example.  You might have a product in the database,
>>>> but calculating it's price based on categories, sale prices, etc isn't
>>>> something that a database is going to do.  That is your app's logic &
>>>> is part of your model.  The model can ask the DB for all that static
>>>> info about pricing, but it makes the determination as to what the
>>>> price is.
>>>>
>>>> What about when you want to add a product to the cart?  Where would
>>>> you ask the code if that product is already in the cart?  Just all
>>>> those types of things...
>>>>
>>> actually (imho?)..
>>> Model != Database
>>> Model != Business Logic
>>>
>>> A model class describes the structure of data, and has methods to ensure
>>> the
>>> instance properties are of the correct format and valid so that they can
>>> be
>>> persisted. Let's say a simple User class
>>>
>>> class User {
>>>
>>>  private $id;
>>>  private $name;
>>>
>>>  public function getId() {
>>>   return $this->id;
>>>  }
>>>
>>>  public function setId( $id ) {
>>>   // logic to ensure $id is the correct format to persist
>>>   // let say just a valid int
>>>   $this->id = $id;
>>>  }
>>>
>>>  public function getName() {
>>>   return $this->name;
>>>  }
>>>
>>>  public function setName( $name ) {
>>>   // logic to ensure $name is the correct format to persist
>>>   // let's say a string under 64 chars
>>>   $this->name = $name
>>>  }
>>>
>>> }
>>>
>>> how it's persisted is out with the scope of this mail, and varying
>>> techniques exist, however this is normally inside the domain model layer
>>> (but not necessarily the model classes themselves)
>>>
>>> The above keeps you're domain model clean and free from implementation
>>> specific idiosyncrasies. This is especially useful when working on
>>> n-tier/3-tier architectures, building a framework, or a single codebase
>>> to
>>> be used across multiple sites.
>>>
>>> All the implementation specific code comes in at the business layer,
>>> which
>>> is where all you're business logic also occurs.
>>>
>>> thus:
>>> Business layer asks domain model layer for a "new user", domain model
>>> layer
>>> returns a new empty instance of the user class.
>>> Business layer does it's thing and ends up populating the user instance
>>> with
>>> data that valid for the specific application (let's say a name string
>>> 8-16
>>> alphanumeric chars)
>>> Business Layer then passes it back to the domain model layer to persist;
>>> the
>>> domain model layer either persists the data OR returns back an exception
>>> should the instance properties not be valid to persist, or if an error
>>> occurred.
>>>
>>> regards :p
>>>
>>
>> This is php we're talking about, not java! :D
>>
>
> dude you're gonna have to stop using that language as an excuse to negate
> everything I say <weg>
>

/white flag ?

-- 
http://www.voom.me | EFnet: #voom

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux