Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Learning Zend Framework after Magento: Models

I have been working over an year with Magento and have learned it good enough. Now I want to learn Zend, and I'm stuck with models.

I'm used to have entities and collection of entities in Magento, and it's likely that I'll want to use Zend_Db_Table, Zend_Db_Table_Row and/or Zend_Db_Table_Rowset. What I am confused of is the role each class.

I know that I can extend each class, and I understand that in my Product_Table class (that extends Zend_Db_Table_Abstract) it's possible to have private methods that will tell Zend what classes to use for rows and rowsets, however I'm not feeling comfortable with it.

Having this code in Magento:

Example 1

// I understand that maybe I'll use the `new` keyword instead
// Mage::getModel() is only for exemplification
$product = Mage::getModel('catalog/product');
$product->setName('product name');
$product->setPrice(20);
$product->save();

if($id = $product->getId()){
    echo 'Product saved with id' . $id;
}
else{
    echo 'Error saving product';
}

Example 2

$collection = Mage::getModel('catalog/product')->getCollection();
// this is the limit, I'm ok with other method's name
$collection->setPageSize(10);
$collection->load()

foreach($collection as $product){
    echo $product->getName() . ' costs ' . $product->getPrice() . PHP_EOL;
}

How I can implement something similar in Zend Framework? Alternatively if this is a really a bad idea, what are the best practices to implement models in Zend Framework?

Thanks

like image 538
s3v3n Avatar asked Aug 19 '11 16:08

s3v3n


People also ask

Does Magento use Zend?

Magento 2 is trying to uses its own framework, Specifically, Magento 2 basically relies on Zend Framework 1. It is they way to leverage its own adapters and interfaces. We can say that it is quite a great ideal situation, and in fact that is what they have in mind the developed path for Magento 2.

Is Magento a CMS or Framework?

Magento, in short, is a robust eCommerce CMS. I think explaining these three terms: 'robust', 'eCommerce', and 'CMS' would amply explain to you what Magento is. Starting with CMS, it is an acronym for Content Management System.

Is Zend Framework Good?

When it comes to PHP frameworks, Zend is counted among the best. Zend Framework offers lots of benefits for creating feature-rich and dynamic web solutions. MVC features and a strong component library have made Zend a popular PHP framework for creating a myriad of web solutions.

What is Zend Framework used for?

Zend Framework is a collection of professional PHP packages with more than 570 million installations. It can be used to develop web applications and services using PHP 5.6+, and provides 100% object-oriented code using a broad spectrum of language features.


1 Answers

The Zend team, as mentioned elsewhere, thinks differently about the Model layer than most other PHP Framework creators. Their current thoughts on "the best" way to use their raw tools to provide a Database backed Entity Model can be found in the quick start guide.

That said, most people's solution to Models in Zend Framework is bootstrapping Doctrine.

like image 90
Alan Storm Avatar answered Sep 20 '22 04:09

Alan Storm