Apress

Pro Zend Framework Techniques

Build a Full CMS Project

By Forrest Lyman

Pro Zend Framework Techniques Cover Image

Pro Zend Framework Techniques provides a clear guide to building a custom content management system (CMS) with the Zend Framework, showing how to utilize the many different aspects of the framework as part of the process.

Full Description

  • ISBN13: 978-1-4302-1879-1
  • User Level: Intermediate
  • Publication Date: October 22, 2009
  • Available eBook Formats: EPUB, MOBI, PDF
  • Print Book Price: $46.99
  • eBook Price: $32.99
Buy eBook Buy Print Book Add to Wishlist

Related Titles

Full Description

The Zend Framework is a truly amazing PHP–based web application development framework and platform that is breathing new life into PHP development. One of the most common uses for a framework such as this is to build content–driven web sites.

Pro Zend Framework Techniques offers:

  • A structured guide for PHP developers, ultimately helping you to create more flexible software much more quickly
  • Clear guidance through the entire process of building a custom content management system (CMS) with the Zend Framework
  • The ideal example project, building a CMS, to illustrate how to use the many different aspects of the framework

What you’ll learn

  • How to structure a real Zend Framework application top to bottom using a CMS application
  • How to work with abstract (flexible) data structures
  • How to add security, access control, and authentication with the Zend Framework
  • How to build a custom, modular CMS
  • How to integrate web services and RSS with a Zend Framework application
  • How to do performance tuning, graceful error handling, internationalization, and more...

Who this book is for

This book is for intermediate–level PHP developers who want to build custom content–driven web sites. Secondly, this book serves as a very readable reference with real–world examples of many of the core Zend Framework components.

Table of Contents

Table of Contents

  1. Getting Started
  2. Designing Your Site
  3. Building and Processing Web Forms with Zend_Form
  4. Managing Data with Zend Framework
  5. Working with CMS Data
  6. Managing Content
  7. Creating the Site Navigation
  8. Handling Security in a Zend Framework Project
  9. Searching and Sharing Content
  10. Extending Your CMS
  11. Advanced Topics
  12. Installing and Managing a Site with Your CMS
Source Code/Downloads

Downloads are available to accompany this book.

Your operating system can likely extract zipped downloads automatically, but you may require software such as WinZip for PC, or StuffIt on a Mac.

Errata

If you think that you've found an error in this book, please let us know about it. You will find any confirmed erratum below, so you can check if your concern has already been addressed.

* Required Fields

On page 0:
I downloaded the source code from your site for the book "Pro Zend Framework Techniques", but I can not find the structure of the database for book samples. Tell me please where can I download them?

On page 7:
At the top of page 7, in a section titled "Testing Your New Project", is the statement "Now if you point your browser to ...., you will see the welcome page.

At this point, you will not see the welcome page, just a series of error messages. If you copy over the Zend library, you will be able to see the welcome page. Unfortunately, you are told about this until the middle of page 10.

The book looks good, just a little hard to get started following the directions in the "Getting Started" chapter.

On page 25:

Under the heading "Testing Your Design":
Second sentence. The path described isn't correct for two reasons:

1. The folder structure dictated in Listing 2-1 shows that it's spelled "temp_design" not "tmp_design"

2. The directory "temp_design" is subdirectory of "public", therefore this path should read: "http://localhost/public/tmp_design/layout.html"

On page 33:
reference to listing 2-12 - text.css should be in /blues/css/text.css

On page 58:

public function createBug($name, $email, $date, $url, $description, $priority, $status)
{
//create a new row in the bugs table
$row = $this->createRow();

// set the row data
$row->author = $name;
$row->email = $email;
$dateObject = new Zend_Date($date);
$row->date = $dateObject->get(Zend_Date::TIMESTAMP);
$row->url = $url;
$row->description = $description;
$row->priority = $priority;
$row->status = $status;

//save the new row
$id = $row->save();

return $id;
}

On page 84:
Listing 5-7 The udpatePage().........models/ContentNode.php

typo and the last php file must be models/Page.php

On page 88:
An error occurred
Application error
Exception information:

Message: Could not open page to update!
Stack trace:

#0 C:\xampp\htdocs\zf_cms\library\CMS\Content\Item\Abstract.php(107): Model_Page->updatePage('0', Array)
#1 C:\xampp\htdocs\zf_cms\library\CMS\Content\Item\Abstract.php(102): CMS_Content_Item_Abstract->_update()
#2 C:\xampp\htdocs\zf_cms\library\CMS\Content\Item\Abstract.php(95): CMS_Content_Item_Abstract->_insert()
#3 C:\xampp\htdocs\zf_cms\application\controllers\PageController.php(43): CMS_Content_Item_Abstract->save()
#4 C:\xampp\htdocs\zf_cms\library\Zend\Controller\Action.php(513): PageController->createAction()
#5 C:\xampp\htdocs\zf_cms\library\Zend\Controller\Dispatcher\Standard.php(295): Zend_Controller_Action->dispatch('createAction')
#6 C:\xampp\htdocs\zf_cms\library\Zend\Controller\Front.php(954): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
#7 C:\xampp\htdocs\zf_cms\library\Zend\Application\Bootstrap\Bootstrap.php(97): Zend_Controller_Front->dispatch()
#8 C:\xampp\htdocs\zf_cms\library\Zend\Application.php(366): Zend_Application_Bootstrap_Bootstrap->run()
#9 C:\xampp\htdocs\zf_cms\public\index.php(26): Zend_Application->run()
#10 {main}

Request Parameters:

array (
'controller' => 'page',
'action' => 'create',
'module' => 'default',
'id' => '',
'name' => 'page1',
'headline' => 'page 1',
'MAX_FILE_SIZE' => '8388608',
'description' => 'description of page 1',
'content' => 'content of page 1',
'submit' => 'Submit',
)

On page 88:
new Page(); must be new Model_Page();

On page 89:

public function loadPageObject($id)
{
$this->id = $id;
$row = $this->getInnerRow();

needs to be:

public function loadPageObject($id)
{
$this->id = $id;
$row = $this->_getInnerRow();

On page 97:
in text... named Page.php must be ... named PageForm.php
and in the code ....class Form_PageFormForm must be ...class Form_PageForm