ホームページ php教程 PHP开发 Zend Frameworkチュートリアルのアプリケーション利用例を詳しく解説

Zend Frameworkチュートリアルのアプリケーション利用例を詳しく解説

Dec 27, 2016 pm 02:19 PM
zend framework

この記事の例では、Zend Framework チュートリアルのアプリケーションの使用法について説明します。参考のために皆さんと共有してください。詳細は次のとおりです:

Zend_Application は Zend Framework のコア コンポーネントです。 Zend_Application は Zend Framework アプリケーションの基本機能を提供し、プログラムのエントリ ポイントです。その主な機能は、PHP 環境のロードと構成 (自動ロードを含む)、およびアプリケーションの起動の 2 つです。

通常、Zend_Application コンストラクターは構成オプションを使用して構成されますが、カスタム メソッドを使用して完全に構成することもできます。以下に 2 つの使用例を示します。

Zend_Application 構成オプション

コンストラクター:

/**
 * Constructor
 *
 * Initialize application. Potentially initializes include_paths, PHP
 * settings, and bootstrap class.
 *
 * @param string          $environment
 * @param string|array|Zend_Config $options String path to configuration file, or array/Zend_Config of configuration options
 * @throws Zend_Application_Exception When invalid options are provided
 * @return void
 */
public function __construct($environment, $options = null)
{
  $this->_environment = (string) $environment;
  require_once 'Zend/Loader/Autoloader.php';
  $this->_autoloader = Zend_Loader_Autoloader::getInstance();
  if (null !== $options) {
    if (is_string($options)) {
      $options = $this->_loadConfig($options);
    } elseif ($options instanceof Zend_Config) {
      $options = $options->toArray();
    } elseif (!is_array($options)) {
      throw new Zend_Application_Exception('Invalid options provided; must be location of config file, a config object, or an array');
    }
    $this->setOptions($options);
  }
}
ログイン後にコピー

Zend_Application 構成メソッド

1. 構成ファイルを使用する
2. 構成配列を使用する

共通の構成オプション

注: Zend Frameworkチュートリアルのアプリケーション利用例を詳しく解説

オプション名は大文字と小文字が区別されません。

Zend_Applicationメソッド

Zend Frameworkチュートリアルのアプリケーション利用例を詳しく解説

Zend Frameworkチュートリアルのアプリケーション利用例を詳しく解説

設定例: Zend Frameworkチュートリアルのアプリケーション利用例を詳しく解説

デフォルト:

// Create application, bootstrap, and run
$application = new Zend_Application(
  APPLICATION_ENV,
  APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
      ->run();
ログイン後にコピー

ソースコード

<?php
class Zend_Application
{  /**
   * Constructor
   *
   * Initialize application. Potentially initializes include_paths, PHP
   * settings, and bootstrap class.
   *
   * @param string          $environment
   * @param string|array|Zend_Config $options String path to configuration file, or array/Zend_Config of configuration options
   * @throws Zend_Application_Exception When invalid options are provided
   * @return void
   */
  public function __construct($environment, $options = null)
  {
    $this->_environment = (string) $environment;
    require_once &#39;Zend/Loader/Autoloader.php&#39;;
    $this->_autoloader = Zend_Loader_Autoloader::getInstance();
    if (null !== $options) {
      if (is_string($options)) {
        $options = $this->_loadConfig($options);
      } elseif ($options instanceof Zend_Config) {
        $options = $options->toArray();
      } elseif (!is_array($options)) {
        throw new Zend_Application_Exception(&#39;Invalid options provided; must be location of config file, a config object, or an array&#39;);
      }
      $this->setOptions($options);
    }
  }
  /**
   * Retrieve current environment
   *
   * @return string
   */
  public function getEnvironment()
  {
    return $this->_environment;
  }
  /**
   * Retrieve autoloader instance
   *
   * @return Zend_Loader_Autoloader
   */
  public function getAutoloader()
  {
    return $this->_autoloader;
  }
  /**
   * Set application options
   *
   * @param array $options
   * @throws Zend_Application_Exception When no bootstrap path is provided
   * @throws Zend_Application_Exception When invalid bootstrap information are provided
   * @return Zend_Application
   */
  public function setOptions(array $options)
  {
    if (!empty($options[&#39;config&#39;])) {
      if (is_array($options[&#39;config&#39;])) {
        $_options = array();
        foreach ($options[&#39;config&#39;] as $tmp) {
          $_options = $this->mergeOptions($_options, $this->_loadConfig($tmp));
        }
        $options = $this->mergeOptions($_options, $options);
      } else {
        $options = $this->mergeOptions($this->_loadConfig($options[&#39;config&#39;]), $options);
      }
    }
    $this->_options = $options;
    $options = array_change_key_case($options, CASE_LOWER);
    $this->_optionKeys = array_keys($options);
    if (!empty($options[&#39;phpsettings&#39;])) {
      $this->setPhpSettings($options[&#39;phpsettings&#39;]);
    }
    if (!empty($options[&#39;includepaths&#39;])) {
      $this->setIncludePaths($options[&#39;includepaths&#39;]);
    }
    if (!empty($options[&#39;autoloadernamespaces&#39;])) {
      $this->setAutoloaderNamespaces($options[&#39;autoloadernamespaces&#39;]);
    }
    if (!empty($options[&#39;autoloaderzfpath&#39;])) {
      $autoloader = $this->getAutoloader();
      if (method_exists($autoloader, &#39;setZfPath&#39;)) {
        $zfPath  = $options[&#39;autoloaderzfpath&#39;];
        $zfVersion = !empty($options[&#39;autoloaderzfversion&#39;])
              ? $options[&#39;autoloaderzfversion&#39;]
              : &#39;latest&#39;;
        $autoloader->setZfPath($zfPath, $zfVersion);
      }
    }
    if (!empty($options[&#39;bootstrap&#39;])) {
      $bootstrap = $options[&#39;bootstrap&#39;];
      if (is_string($bootstrap)) {
        $this->setBootstrap($bootstrap);
      } elseif (is_array($bootstrap)) {
        if (empty($bootstrap[&#39;path&#39;])) {
          throw new Zend_Application_Exception(&#39;No bootstrap path provided&#39;);
        }
        $path = $bootstrap[&#39;path&#39;];
        $class = null;
        if (!empty($bootstrap[&#39;class&#39;])) {
          $class = $bootstrap[&#39;class&#39;];
        }
        $this->setBootstrap($path, $class);
      } else {
        throw new Zend_Application_Exception(&#39;Invalid bootstrap information provided&#39;);
      }
    }
    return $this;
  }
  /**
   * Retrieve application options (for caching)
   *
   * @return array
   */
  public function getOptions()
  {
    return $this->_options;
  }
  /**
   * Is an option present?
   *
   * @param string $key
   * @return bool
   */
  public function hasOption($key)
  {
    return in_array(strtolower($key), $this->_optionKeys);
  }
  /**
   * Retrieve a single option
   *
   * @param string $key
   * @return mixed
   */
  public function getOption($key)
  {
  }
  /**
   * Merge options recursively
   *
   * @param array $array1
   * @param mixed $array2
   * @return array
   */
  public function mergeOptions(array $array1, $array2 = null)
  {
    if (is_array($array2)) {
      foreach ($array2 as $key => $val) {
        if (is_array($array2[$key])) {
          $array1[$key] = (array_key_exists($key, $array1) && is_array($array1[$key]))
                 ? $this->mergeOptions($array1[$key], $array2[$key])
                 : $array2[$key];
        } else {
          $array1[$key] = $val;
        }
      }
    }
    return $array1;
  }
  /**
   * Set PHP configuration settings
   *
   * @param array $settings
   * @param string $prefix Key prefix to prepend to array values (used to map . separated INI values)
   * @return Zend_Application
   */
  public function setPhpSettings(array $settings, $prefix = &#39;&#39;)
  {
    foreach ($settings as $key => $value) {
      $key = empty($prefix) ? $key : $prefix . $key;
      if (is_scalar($value)) {
        ini_set($key, $value);
      } elseif (is_array($value)) {
        $this->setPhpSettings($value, $key . &#39;.&#39;);
      }
    }
    return $this;
  }
  /**
   * Set include path
   *
   * @param array $paths
   * @return Zend_Application
   */
  public function setIncludePaths(array $paths)
  {
    $path = implode(PATH_SEPARATOR, $paths);
    set_include_path($path . PATH_SEPARATOR . get_include_path());
    return $this;
  }
  /**
   * Set autoloader namespaces
   *
   * @param array $namespaces
   * @return Zend_Application
   */
  public function setAutoloaderNamespaces(array $namespaces)
  {
    $autoloader = $this->getAutoloader();
    foreach ($namespaces as $namespace) {
      $autoloader->registerNamespace($namespace);
    }
    return $this;
  }
  /**
   * Set bootstrap path/class
   *
   * @param string $path
   * @param string $class
   * @return Zend_Application
   */
  public function setBootstrap($path, $class = null)
  {
    // setOptions() can potentially send a null value; specify default
    // here
    if (null === $class) {
      $class = &#39;Bootstrap&#39;;
    }
    if (!class_exists($class, false)) {
      require_once $path;
      if (!class_exists($class, false)) {
        throw new Zend_Application_Exception(&#39;Bootstrap class not found&#39;);
      }
    }
    $this->_bootstrap = new $class($this);
    if (!$this->_bootstrap instanceof Zend_Application_Bootstrap_Bootstrapper) {
      throw new Zend_Application_Exception(&#39;Bootstrap class does not implement Zend_Application_Bootstrap_Bootstrapper&#39;);
    }
    return $this;
  }
  /**
   * Get bootstrap object
   *
   * @return Zend_Application_Bootstrap_BootstrapAbstract
   */
  public function getBootstrap()
  {
    if (null === $this->_bootstrap) {
      $this->_bootstrap = new Zend_Application_Bootstrap_Bootstrap($this);
    }
    return $this->_bootstrap;
  }
  /**
   * Bootstrap application
   *
   * @param null|string|array $resource
   * @return Zend_Application
   */
  public function bootstrap($resource = null)
  {
    $this->getBootstrap()->bootstrap($resource);
    return $this;
  }
  /**
   * Run the application
   *
   * @return void
   */
  public function run()
  {
    $this->getBootstrap()->run();
  }
  /**
   * Load configuration file of options
   *
   * @param string $file
   * @throws Zend_Application_Exception When invalid configuration file is provided
   * @return array
   */
  protected function _loadConfig($file)
  {
    $environment = $this->getEnvironment();
    $suffix   = pathinfo($file, PATHINFO_EXTENSION);
    $suffix   = ($suffix === &#39;dist&#39;)
           ? pathinfo(basename($file, ".$suffix"), PATHINFO_EXTENSION)
           : $suffix;
    switch (strtolower($suffix)) {
      case &#39;ini&#39;:
        $config = new Zend_Config_Ini($file, $environment);
        break;
      case &#39;xml&#39;:
        $config = new Zend_Config_Xml($file, $environment);
        break;
      case &#39;json&#39;:
        $config = new Zend_Config_Json($file, $environment);
        break;
      case &#39;yaml&#39;:
      case &#39;yml&#39;:
        $config = new Zend_Config_Yaml($file, $environment);
        break;
      case &#39;php&#39;:
      case &#39;inc&#39;:
        $config = include $file;
        if (!is_array($config)) {
          throw new Zend_Application_Exception(&#39;Invalid configuration file provided; PHP file does not return array value&#39;);
        }
        return $config;
        break;
      default:
        throw new Zend_Application_Exception(&#39;Invalid configuration file provided; unknown config type&#39;);
    }
    return $config->toArray();
  }
}
ログイン後にコピー
この記事が、PHPプログラム設計に携わる皆様のお役に立てれば幸いです。

Zend Framework チュートリアルのアプリケーション使用例の詳細な説明については、PHP 中国語 Web サイトに注目してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP での Zend Framework の使用: クイック スタート ガイド PHP での Zend Framework の使用: クイック スタート ガイド Jun 21, 2023 am 08:58 AM

PHP での ZendFramework の使用: クイック スタート ガイド ZendFramework は、強力で簡単に拡張できるオープン ソースの PHP ベースの Web アプリケーション フレームワークです。 ZendFramework には、効率的な Web アプリケーションの構築に役立つ多くの便利なコンポーネントが含まれています。この記事では、すぐに使い始めるのに役立つ、PHP で ZendFramework を使用する方法を紹介します。 ZendFramewo をインストールする

Zend Framework ミドルウェアによる効率的なデータベース クエリ Zend Framework ミドルウェアによる効率的なデータベース クエリ Jul 28, 2023 pm 01:13 PM

ZendFramework ミドルウェアによる効率的なデータベース クエリの実装 はじめに 開発プロセスでは、データベース クエリは避けられない部分です。効率的なデータベース クエリにより、システムのパフォーマンスとユーザー エクスペリエンスが大幅に向上します。 ZendFramework は、強力なデータベース操作機能を備えた、広く使用されている PHP フレームワークです。この記事では、ZendFramework ミドルウェアを通じて効率的なデータベース クエリを実装する方法を紹介し、対応するコード例を示します。 1. ZendF を理解する

Zend Framework ミドルウェア: OAuth および OpenID ログイン サポートをアプリケーションに追加します。 Zend Framework ミドルウェア: OAuth および OpenID ログイン サポートをアプリケーションに追加します。 Jul 28, 2023 pm 01:09 PM

ZendFramework ミドルウェア: アプリケーションへの OAuth および OpenID ログイン サポートの追加 ユーザー認証は、今日のインターネット アプリケーションにおいて重要な機能です。より優れたユーザー エクスペリエンスとセキュリティを提供するために、多くのアプリケーションは、OAuth や OpenID などのサードパーティのログイン サービスを統合することを選択します。 ZendFramework では、ミドルウェアを通じて OAuth および OpenID ログイン サポートをアプリケーションに簡単に追加できます。まず、Ze をインストールする必要があります

Zend Framework ミドルウェア: 全文検索およびページング機能の実装 Zend Framework ミドルウェア: 全文検索およびページング機能の実装 Jul 30, 2023 pm 08:49 PM

ZendFramework は、開発者が高性能でスケーラブルな PHP アプリケーションを迅速に構築できるようにする強力な開発フレームワークです。中でもミドルウェアは ZendFramework の重要な概念であり、全文検索やページング機能の実装に役立ちます。この記事では、ZendFramework のミドルウェアを使用してこれら 2 つの機能を実装する方法を紹介し、コード例を示します。 1. 全文検索機能 全文検索は、現代のアプリケーションで一般的な機能の 1 つです。

Zend Framework ミドルウェア: Web アプリケーションにソーシャル ログイン機能を追加 Zend Framework ミドルウェア: Web アプリケーションにソーシャル ログイン機能を追加 Jul 28, 2023 pm 07:21 PM

ZendFramework は、スケーラブルな Web アプリケーションを構築するための多くの強力なツールとコンポーネントを提供する PHP ベースのオープン ソース フレームワークです。この記事では、ZendFramework のミドルウェアを使用して、Web アプリケーションにソーシャル ログイン機能を追加する方法を紹介します。ミドルウェアは、リクエストがアプリケーションに入る前または後に実行されるコードです。これにより、開発者はリクエストを処理するプロセスをカスタマイズおよび拡張できます。 ZendFramework は、次のような柔軟な方法を提供します。

Zend Framework ミドルウェア: Alipay と WeChat の支払い機能をアプリケーションに追加 Zend Framework ミドルウェア: Alipay と WeChat の支払い機能をアプリケーションに追加 Jul 28, 2023 pm 08:01 PM

ZendFramework ミドルウェア: Alipay および WeChat 支払い機能をアプリケーションに追加する はじめに: モバイル決済の人気に伴い、Alipay と WeChat 支払いは多くのアプリケーションで不可欠な支払い方法になりました。この記事では、ZendFrameworkミドルウェアを使用して、AlipayとWeChatの決済機能をアプリケーションに追加する方法を紹介します。この記事を学ぶことで、ミドルウェアを使用して支払いプロセスを簡素化し、それを実際のプロジェクトに適用する方法を学びます。 1. 準備 始める前に、

PHP プログラミングにおける一般的な Zend Framework 2 操作は何ですか? PHP プログラミングにおける一般的な Zend Framework 2 操作は何ですか? Jun 12, 2023 am 09:01 AM

ZendFramework2 は、豊富な機能とモジュールを提供する人気の PHP プログラミング フレームワークで、PHP 開発者が高品質の Web アプリケーションをより簡単に構築できるようにします。この記事では、このフレームワークをより効果的に使用するために役立ついくつかの一般的な ZendFramework2 操作を紹介します。 MVC パターン ZendFramework2 では、Model-View-Controller (MVC) パターンが最も一般的なアーキテクチャです。 MVC パターンは、

CodeIgniter と Zend フレームワーク: ERP システムの開発にはどちらのフレームワークが適していますか? CodeIgniter と Zend フレームワーク: ERP システムの開発にはどちらのフレームワークが適していますか? Jun 19, 2023 am 08:53 AM

ERP システムを開発する場合、適切なフレームワークを選択することが重要です。ここでは、ERP システム開発により適したフレームワークを見つけるために、2 つの PHP フレームワーク CodeIgniter と ZendFramework を比較します。 CodeIgniter と ZendFramework は、人気のある PHP フレームワークです。これらはすべて多くの機能を提供し、拡張可能で保守可能です。ただし、これら 2 つのフレームワークはいくつかの点で大きく異なり、一部のアプリケーションにはより適しています。

See all articles