Table des matières
Zend Framework教程之模型Model基本规则和使用方法,zendframework
您可能感兴趣的文章:
Maison développement back-end tutoriel php Zend Framework教程之模型Model基本规则和使用方法,zendframework_PHP教程

Zend Framework教程之模型Model基本规则和使用方法,zendframework_PHP教程

Jul 12, 2016 am 08:57 AM
framework php框架 zend

Zend Framework教程之模型Model基本规则和使用方法,zendframework

本文实例讲述了Zend Framework教程之模型Model基本规则和使用方法。分享给大家供大家参考,具体如下:

这里讲讲Zend中的model。其实Zend中的Model处理是相当简单的。

这主要得益于autoload功能。不像其它框架,为model定义复杂的基类。

如果要定义model,不得不要继承一个model的基类,才可以使用具体的功能。

Zend中并没有对模型进行封装。

原因大概是Model主要是和具体业务逻辑相关的,进行过多的封装,只会画蛇添足。

Zend使用了autoload和namespace功能,很委婉的解决了这个问题。

创建一个zendframework项目model_demo1

为了方便查看错误我们可以在配置文件中/model_demo1/application/configs/application.ini打开错误信息开关如下:

phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
resources.frontController.params.displayExceptions = 1

Copier après la connexion

接下来简单的讲讲zend中的model:

1.默认的Model

一个标准的webapp中会有application/models这样的目录。不难看出,models用来存放你的app的model

这个目录的强大之处在于,如果你在models目录中定义了具体的class。zend会自动的帮我们加载,当然要遵循一定的约定,前提是:

例如,用zf命令行创建一个名为Test的Model

zf create model Test

Copier après la connexion

Creating a model at /www/model_demo1/application/models/Test.php

Updating project profile '/www/model_demo1/.zfproject.xml'

刷新一下项目目录可以看到,新增了如下文件/model_demo1/application/models/Test.php

文件内容如下:

<&#63;php
class Application_Model_Test
{}

Copier après la connexion

不难看出我们要使用Model要遵循如下规则:

1).以Application_Model_开头,然后后面是自定义的model的类名称。

即:我们web应用的model的目录结构为/model_demo1/application/models/Test.php

对应的命名空间为Application_Model_Test。

application对应Application

models对应models

Test是model的类文件的名称。

类的名称按照约束就是:class Application_Model_Test {

也不难理解Application_Model_,这样的规则遵循zend framework的autoload和namespace的约定。

2).Application命名空间

其实Application也是我们在配置文件中配置的应用的命名空间。

如果把配置文件的appnamespace = "Application"修改为appnamespace = "App"。

我们原先的程序,就会报错了。原因不言而喻。所以zend也没有那么智能。

如果要详细追究其原理,大概是如下的类完成这个功能的:

Zend_Application_Bootstrap_Bootstrap
Zend_Application_Module_Autoloader

Copier après la connexion

2.自定义命名空间

Zend是默认的命名空间。例如在/model_demo1/library/Zend/Test.php创建类Zend_Test

<&#63;php
class Zend_Test{
 static public function echoZendTest(){
  echo 'ZendTest<br/>';
 }
}

Copier après la connexion

不需要做任何操作,就可以在程序中使用。例如:Zend_Test::echoZendTest();
这里简单说明自定义命名空间的两种方法:

1).使用application.ini配置文件

默认命名空间

appnamespace = "Application"
Copier après la connexion

自定义命名空间

autoloadernamespaces.app = "App_"
autoloadernamespaces.my = "MyApp_"

Copier après la connexion

或者

autoloadernamespaces[] = "App_"
autoloadernamespaces[] = "MyApp_"

Copier après la connexion

具体实现类为:Zend\Application.php

public function setOptions(array $options)
{
 if (!empty($options['config'])) {
  if (is_array($options['config'])) {
   $_options = array();
   foreach ($options['config'] as $tmp) {
    $_options = $this->mergeOptions($_options, $this->_loadConfig($tmp));
   }
   $options = $this->mergeOptions($_options, $options);
  } else {
   $options = $this->mergeOptions($this->_loadConfig($options['config']), $options);
  }
 }
 $this->_options = $options;
 $options = array_change_key_case($options, CASE_LOWER);
 $this->_optionKeys = array_keys($options);
 if (!empty($options['phpsettings'])) {
  $this->setPhpSettings($options['phpsettings']);
 }
 if (!empty($options['includepaths'])) {
  $this->setIncludePaths($options['includepaths']);
 }
 if (!empty($options['autoloadernamespaces'])) {
  $this->setAutoloaderNamespaces($options['autoloadernamespaces']);
 }

Copier après la connexion

2).在Bootstrap.php文件中

例如/model_demo1/application/Bootstrap.php

<&#63;php
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap {
 protected function _initAutoload() {
  $app = $this->getApplication ();
  $namespaces = array (
    'AppTest'
  );
  $app->setAutoloaderNamespaces ( $namespaces );
  return $app;
 }
}

Copier après la connexion

/model_demo1/library/AppTest/Test.php

<&#63;php
class AppTest_Test{
 static public function echoAppTestTest(){
  echo 'AppTestTest<br/>';
 }
}

Copier après la connexion

/model_demo1/application/controllers/IndexController.php

AppTest_Test::echoAppTestTest();

Copier après la connexion

3).使用具体的类完成自动加载

$auto_loader = Zend_Loader_Autoloader::getInstance();
$resourceLoader = new Zend_Loader_Autoloader_Resource(array(
  'basePath' => '/www/model_demo1/application',
  'namespace' => '',
  'resourceTypes' => array(
    'model' => array(
      'path' => 'models',
      'namespace' => 'Model'
    )
  )
)
);
$auto_loader->pushAutoloader($resourceLoader);
$auto_loader->registerNamespace(array('AppTest2_'));
AppTest2_Test::echoAppTest2Test();
Model_ModelTest::echoModelModelTest();

Copier après la connexion

/model_demo1/application/models/ModelTest.php

<&#63;php
class Model_ModelTest{
 static function echoModelModelTest(){
  echo 'Model_ModelTest<br/>';
 }
}

Copier après la connexion

/model_demo1/library/AppTest2/Test.php

<&#63;php
class AppTest2_Test{
 static public function echoAppTest2Test(){
  echo 'AppTest2Test<br/>';
 }
}

Copier après la connexion

更多关于zend相关内容感兴趣的读者可查看本站专题:《Zend FrameWork框架入门教程》、《php优秀开发框架总结》、《Yii框架入门及常用技巧总结》、《ThinkPHP入门教程》、《php面向对象程序设计入门教程》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

您可能感兴趣的文章:

  • Zend Framework教程之Zend_Layout布局助手详解
  • zend framework中使用memcache的方法
  • zend framework框架中url大小写问题解决方法
  • Zend Framework 2.0事件管理器(The EventManager)入门教程
  • Zend Framework页面缓存实例
  • 非常好用的Zend Framework分页类
  • zend Framework中的Layout(模块化得布局)详解
  • zend framework配置操作数据库实例分析
  • windows下zendframework项目环境搭建(通过命令行配置)
  • Zend Framework教程之模型Model用法简单实例

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1106113.htmlTechArticleZend Framework教程之模型Model基本规则和使用方法,zendframework 本文实例讲述了Zend Framework教程之模型Model基本规则和使用方法。分享给大家供大...
Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comparaison des avantages et inconvénients des frameworks PHP : Lequel est le meilleur ? Comparaison des avantages et inconvénients des frameworks PHP : Lequel est le meilleur ? Jun 04, 2024 pm 03:36 PM

Le choix du framework PHP dépend des besoins du projet et des compétences du développeur : Laravel : riche en fonctionnalités et en communauté active, mais a une courbe d'apprentissage abrupte et des frais généraux élevés en termes de performances. CodeIgniter : léger et facile à étendre, mais a des fonctionnalités limitées et moins de documentation. Symfony : Communauté modulaire et forte, mais problèmes de performances complexes. ZendFramework : de niveau entreprise, stable et fiable, mais volumineux et coûteux en licence. Slim : micro-framework, rapide, mais avec des fonctionnalités limitées et une courbe d'apprentissage abrupte.

Différences de performances des frameworks PHP dans différents environnements de développement Différences de performances des frameworks PHP dans différents environnements de développement Jun 05, 2024 pm 08:57 PM

Il existe des différences dans les performances des frameworks PHP dans différents environnements de développement. Les environnements de développement (tels que les serveurs Apache locaux) souffrent de performances de framework inférieures en raison de facteurs tels que les performances des serveurs locaux et les outils de débogage inférieurs. En revanche, un environnement de production (tel qu'un serveur de production entièrement fonctionnel) avec des serveurs plus puissants et des configurations optimisées permet au framework de fonctionner nettement mieux.

Frameworks et microservices PHP : déploiement et conteneurisation cloud natifs Frameworks et microservices PHP : déploiement et conteneurisation cloud natifs Jun 04, 2024 pm 12:48 PM

Avantages de la combinaison du framework PHP avec des microservices : Évolutivité : étendez facilement l'application, ajoutez de nouvelles fonctionnalités ou gérez plus de charge. Flexibilité : les microservices sont déployés et maintenus de manière indépendante, ce qui facilite les modifications et les mises à jour. Haute disponibilité : la défaillance d'un microservice n'affecte pas les autres parties, garantissant une disponibilité plus élevée. Cas pratique : Déployer des microservices à l'aide de Laravel et Kubernetes Étapes : Créer un projet Laravel. Définissez le contrôleur de microservice. Créez un fichier Docker. Créez un manifeste Kubernetes. Déployez des microservices. Testez les microservices.

Intégration des frameworks PHP avec DevOps : le futur de l'automatisation et de l'agilité Intégration des frameworks PHP avec DevOps : le futur de l'automatisation et de l'agilité Jun 05, 2024 pm 09:18 PM

L'intégration des frameworks PHP avec DevOps peut améliorer l'efficacité et l'agilité : automatiser les tâches fastidieuses, libérer le personnel pour qu'il se concentre sur les tâches stratégiques, raccourcir les cycles de publication, accélérer la mise sur le marché, améliorer la qualité du code, réduire les erreurs, améliorer la collaboration des équipes interfonctionnelles et décomposer silos de développement et d’exploitation

Le meilleur framework PHP pour l'architecture de microservices : performances et efficacité Le meilleur framework PHP pour l'architecture de microservices : performances et efficacité Jun 03, 2024 pm 08:27 PM

Meilleur framework de microservices PHP : Symfony : flexibilité, performances et évolutivité, fournissant une suite de composants pour la création de microservices. Laravel : se concentre sur l'efficacité et la testabilité, fournit une interface API propre et prend en charge les services sans état. Slim : minimaliste, rapide, fournit un système de routage simple et un constructeur de corps intermédiaire en option, adapté à la création d'API hautes performances.

Le potentiel applicatif de l'intelligence artificielle dans le framework PHP Le potentiel applicatif de l'intelligence artificielle dans le framework PHP Jun 03, 2024 am 11:01 AM

Le potentiel d'application de l'intelligence artificielle (IA) dans le framework PHP comprend : Traitement du langage naturel (NLP) : pour analyser du texte, identifier les émotions et générer des résumés. Traitement d'image : utilisé pour identifier les objets de l'image, la détection des visages et le redimensionnement. Apprentissage automatique : pour la prédiction, la classification et le clustering. Cas pratiques : chatbots, recommandations personnalisées, détection de fraude. L’intégration de l’IA peut améliorer les fonctionnalités d’un site Web ou d’une application, en offrant de nouvelles fonctionnalités puissantes.

Frameworks PHP et intelligence artificielle : guide du développeur Frameworks PHP et intelligence artificielle : guide du développeur Jun 04, 2024 pm 12:47 PM

Utilisez un framework PHP pour intégrer l'intelligence artificielle (IA) afin de simplifier l'intégration de l'IA dans les applications Web. Framework recommandé : Laravel : léger, efficace et puissant. CodeIgniter : Simple et facile à utiliser, adapté aux petites applications. ZendFramework : Framework de niveau entreprise avec des fonctions complètes. Méthode d'intégration de l'IA : Modèle d'apprentissage automatique : effectuer des tâches spécifiques. AIAPI : fournit des fonctionnalités prédéfinies. Bibliothèque AI : gère les tâches d’IA.

Quel framework PHP offre la bibliothèque d'extensions la plus complète pour un développement rapide ? Quel framework PHP offre la bibliothèque d'extensions la plus complète pour un développement rapide ? Jun 04, 2024 am 10:45 AM

La bibliothèque d'extensions de framework PHP propose quatre frameworks de sélection : Laravel : connu pour son vaste écosystème et ses packages tiers, il fournit l'authentification, le routage, la validation et d'autres extensions. Symfony : hautement modulaire, étendant les fonctionnalités via des "Bundles" réutilisables, couvrant des domaines tels que l'authentification et les formulaires. CodeIgniter : léger et performant, fournissant des extensions pratiques telles que la connexion à une base de données et la validation de formulaires. ZendFramework : fonctionnalités puissantes au niveau de l'entreprise, avec des extensions telles que l'authentification, la connexion à une base de données, la prise en charge de RESTfulAPI, etc.

See all articles