Zend Framework: создание нового лидера - PullRequest
0 голосов
/ 11 февраля 2012

Я изучал Zend Framework последние пару дней. На данный момент я на начальном уровне.

Мне дали постановку задачи:

/* Create a new lead
 *
 * planId will be sent $_GET['planId'], the form should send the action to
 * the same page
 * a user should be logged in and he should be administrator of the plan
 *
 * @uses Plans_Model_Dao_Moderator::isAdmin
 * @throws unauthorized exception, catch the exception in error controller
 */

Я просмотрел весь учебник Zend, доступный на сайте, чтобы понять, с чего начать! Это действительно действует мне на нервы ... любая помощь по этому поводу была бы благодарна.

Может ли обработка ошибок выполняться с помощью Zend_Controller_Plugin_ErrorHandler?

1 Ответ

1 голос
/ 12 февраля 2012

Прежде всего, вам нужно настроить приложение.

После быстрого запуска Zend Framework (http://framework.zend.com/manual/en/learning.quickstart.intro.html) вы получите одно приложение, доступное через / index / index

Если вы считаете, что быстрый запуск недостаточен, вы можете перейти по этой ссылке: http://alex -tech-adventures.com / development / zend-framework.html? Start = 20

Там вы найдете, как настроить приложение с помощью логина, контроля доступа, а также форм.

После этого вы можете наконец попытаться понять Plans_Model_Dao_Moderator::isAdmin

В этом случае существует другая концепция. ZF Quick Start использует Data Mappers как DAL (Уровень доступа к данным), который действует с DAO (Объектами доступа к данным) для каждого объекта модели.

См .: В чем разница между DAO и DAL?

В руководстве, представленном по ссылке выше (Alex Tech Adventures), не используются Data Mappers. В этом случае DAL - это Zend_Db_Table и Zend_Db_Table_Row. Но вы можете адаптировать его после того, как вы поймете всю концепцию.

Так что, в принципе, Plans_Model_Dao_Moderator::isAdmin будет выглядеть примерно так:

/**
 * Check if the user has administrative rights
 * on a given plan
 * @param int $user_id
 * @param int $plan_id
 * @return bool
 */
public function isAdmin($user_id, $plan_id)
{
    // perform the the select on the data base
    // $this->dbAdapter->fetchRow($select->from('table'...
    // return $bool
}
...