Maison  >  Article  >  php教程  >  Résumé des points de connaissance d'introduction à Zend Framework

Résumé des points de connaissance d'introduction à Zend Framework

高洛峰
高洛峰original
2017-01-05 10:54:261410parcourir

Cet article résume et analyse les points de connaissance introductifs de Zend Framework. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

zend framework est une implémentation du modèle MVC Pour commencer rapidement, il suffit de regarder la partie Zend_Controller Zend_View.

1.Partie Zend_Controller. La classe la plus importante est Zend_Controller_Front. Le code classique pour l'utiliser est très simple :

$front=Zend_Controller_Front::getInstance();
$front-> setControllerDirectory("./app/controllers");
$front->dispatch();

Ce qu'il faut expliquer ici, c'est que vous ne pouvez pas utiliser new pour obtenir un Zend_Controller_Front, vous pouvez uniquement appeler la méthode getInstance pour renvoie une instance (mon zend_framework 1.01 est utilisé). Le répertoire des contrôleurs que j'ai spécifié ici se trouve sous le dossier app sous le répertoire racine du document www. D'une manière générale, les applications ne doivent pas être placées dans le répertoire racine du document - ce qu'on appelle un problème de sécurité : si la configuration n'est pas stricte, les fichiers du répertoire racine du document www peuvent être visibles par les visiteurs. Généralement, il doit être placé dans un autre répertoire. Par exemple, s'il est placé au même niveau que le répertoire racine du document, vous pouvez utiliser :

$front->setControllerDirectory("../app/controllers")

Il y a un "." Des chemins relatifs sont utilisés ici. Vous pouvez spécifier d'autres répertoires en utilisant leur chemin d'accès complet. Par exemple :

$front->setControllerDirectory("E: /server/app/controllers")

Cette partie est incluse dans l'index. en php. Sous la configuration correcte, toute requête sera redirigée par la fonction de réécriture vers ce $front, qui est l'instance du contrôleur frontal Zend_Controller_Front. Toutes les authentifications et autres traitements doivent être traités avant l'expédition.

2. Les codes courants de Zend_View sont :

$view=new Zend_View();
Zend_Registry::set("view".$view);

La structure de répertoires recommandée par Zend_Framework est adoptée par défaut. Les modèles de contrôleurs sont au même niveau. Tous dans le répertoire de l'application. Il y a trois répertoires frères sous les vues : les filtres d'aide aux scripts. De cette façon, lorsque vous définissez un contrôleur, vous devez créer un nouveau répertoire sous scripts pour stocker les modèles subordonnés au contrôleur. Par exemple, pour un simple

Class IndexController extends Zend_Controller_Action
{
 function IndexAction()
 {
 }
}

vous devez créer un répertoire d'index en conséquence et créer un modèle index.phtml dans le répertoire d'index. Si vous créez une autre fonction addAction() sous IndexController, vous devez créer un nouveau add.phtml dans index. Si vous disposez d'un autre UserController, vous devez disposer d'un répertoire utilisateur correspondant sous scripts. Ces fichiers *.phtml sont similaires aux fichiers HTML et définissent la manière dont le contenu que vous produisez est affiché. Vous pouvez simplement le laisser vide. Mais il ne peut pas être laissé de côté, sinon cela provoquera une "erreur" Contrôleur invalide... En effet, le ErrorController par défaut a déjà été enregistré. Le ErrorController par défaut sera appelé lorsque le contrôleur frontal ne trouvera pas la distribution de contrôleur correspondante.

Parfois, nous ne souhaitons pas utiliser la structure de répertoires par défaut ou le modèle de vue de type phtml par défaut. À ce stade, nous pouvons utiliser

$view->setParam ("noViewRanderer",true);

pour annuler le paramètre de répertoire de type phtml par défaut. Utilisez

$view->setParam ("noErrorHandler",true);

pour écrire dans le ErrorController par défaut. Utilisez

$view->setscrīptPath ("./app/views");

pour définir l'emplacement de votre modèle. Ceci est utile lorsque vous utilisez des modèles intelligents.

peut s'écrire comme ceci :

$view=new Zend_View_Smarty();
$view->setParam("noViewRanderer",true);
$view->setParam("noErrorHandler",true);
$view->setscrīptPath("./app/views");
Zend_Registry::set("view".$view);

peut être obtenu comme ceci en utilisant :

$view=Zend_Registry::get("view");

3. Lors de votre premier contact, le modèle peut être simplement compris comme un objet de données. Pour ceux qui exploitent la base de données, vous pouvez généralement hériter directement de la classe Zend_Db_Table. est très bien encapsulé et est généralement suffisant pour une utilisation :

class data extends Zend_Db_Table
{
 protected $_name="data";
}

Il vous suffit de spécifier le nom de la table. Bien sûr, vous n'avez pas besoin de le spécifier explicitement. Dans ce cas, zendf utilisera votre nom de classe pour rechercher la table dans la base de données par défaut. N'oubliez pas de spécifier defaultAdapter pour Zend_Db_Table :

$config = new Zend_Config_Ini('./application/config.ini', 'general');
$db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);

config.ini est similaire à [general]

db.adapter = PDO_MYSQL
db.config.host = localhost
db.config.username = rob
db.config.password = 123456
db.config.dbname = zftest

Hope cet article explique qu'il sera utile à tout le monde de concevoir des programmes PHP basés sur le framework Zend Framework.

Pour plus d'articles liés aux points de connaissances d'introduction au Zend Framework, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn