目次
Zend Frameworkチュートリアル、zendframeworkのアプリケーション使用例を詳しく解説
您可能感兴趣的文章:
ホームページ バックエンド開発 PHPチュートリアル Zend Frameworkチュートリアル、zendframework_PHPチュートリアルのアプリケーション使用例を詳しく解説

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

Jul 12, 2016 am 08:57 AM
framework htaccess zend

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

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

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

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

Zend_Application 構成オプション

コンストラクター:

リーリー

Zend_Applicationの設定方法

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

一般的な構成オプション


注意:

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

Zend_Application メソッド

オプション 説明
php設定

php.ini オプションの設定に使用されます。配列である必要があり、配列のキーがオプションのキーである必要があります。

パスを含む

追加のパスを include_path に追加します。これは配列である必要があります

オートローダー名前空間

追加の名前空間を配列として Zend_Loader_Autoloader に登録します

ブートストラップ

ブートストラップ クラスのパスを設定する文字列にすることも、配列にすることもできます。配列要素は 'path' と 'class' である必要があります。

setBootstrap($path, $class = null)Zend_Application
方法 戻り値 パラメータ 説明
__construct(
$環境、
$options = null)
ボイド
  • $環境: 必須。 現在のアプリケーション環境を表す文字列。

    一般的な文字列には、「development」、「testing」、「qa」、または「production」が含まれる場合がありますが、これらはすでに定義されている必要があります。

    設定ファイルの関連セクションに対応します。

  • $options: オプション。パラメータのタイプは:

    です。
    • String : $environment ファイルの構成パスを指定して、構成ファイルのどの章を指定するか指定します。 1.10 以降、複数の設定ファイルのパスを設定できるようになり、それらは 1 つの設定ファイルにマージされます。

      これはより柔軟で再利用が簡単です。

      この場合のキーは「config」で、その値はファイルパスの配列です。

      注: パス文字列、または array("config"=>array("/path1","/path2"[,...])); にすることができます。

    • 配列 : アプリケーションの連想配列を構成します

    • Zend_Config: 構成オブジェクトのインスタンス

コンストラクター。 構成オブジェクトを初期化するために使用されます。 Zend_Loader_Autoloader をインスタンス化します。

オプションをコンストラクターに渡してから setOptions() メソッドに渡すことによって。

getEnvironment() 文字列 該当なし

環境設定を取得する

getAutoloader() Zend_Loader_Autoloader 該当なし

Zend_Loader_Autoloader インスタンスを取得する

setOptions(array $options) Zend_Application
  • $options: 必須、配列である必要があります

すべてのオプションは参照内に保存され、オプションをマージするためにメソッドが複数回呼び出されます。

オプションに応じてsetterメソッドが生成されます。

たとえば、オプション「phpSettings」は setPhpSettings() に対応します。

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

getOptions() 配列 該当なし


オプション($key)があります ブール
  • $key: 指定された設定が発行されたと判断します

キーでは大文字と小文字が区別されません。

getOption($key) 混合
  • $key: 指定された構成オプションの値を取得します

キーでは大文字と小文字が区別されません。存在しない場合は NULL

を返します
setPhpSettings(array $settings, $prefix = '') Zend_Application
  • $settings: 比較.PHP INIの構成連想配列.

  • $prefix: オプション オプションに接頭辞を追加します。


setAutoloaderNamespaces(array $namespaces) Zend_Application
  • $名前空間: 必須

    Zend_Loader_Autoloader インスタンス経由で登録された名前空間文字列の配列を渡します


  • $パス

    : 必須おそらく Zend_Application_Bootstrap_Bootstrapper インスタンス

    ブートストラップ クラスパス文字列、

    クラス名 => ファイル名、

    形式の連想配列

    または、キー「class」と値「path」を持つ連想配列。

  • $class: オプション$pathが文字列の場合、$classはクラス名です

getBootstrap() NULL |Zend_Application_Bootstrap_Bootstrapper 該当なし

登録されたブートストラップ インスタンスを取得します。

ブートストラップ() ボイド 該当なし

ブートストラップの bootstrap() を呼び出してアプリケーションをブートストラップします。

走る() ボイド 該当なし

ブートストラップの run() を呼び出してアプリケーションを実行します

配置举例:

默认:

1

2

3

4

5

6

7

// Create application, bootstrap, and run

$application = new Zend_Application(

  APPLICATION_ENV,

  APPLICATION_PATH . '/configs/application.ini'

);

$application->bootstrap()

      ->run();

ログイン後にコピー

源代码

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

202

203

204

205

206

207

208

209

210

211

212

213

214

215

216

217

218

219

220

221

222

223

224

225

226

227

228

229

230

231

232

233

234

235

236

237

238

239

240

241

242

243

244

245

246

247

248

249

250

251

252

253

254

255

256

257

258

259

260

261

262

263

264

265

266

267

268

269

270

271

272

273

274

275

276

277

278

279

280

281

282

283

284

285

286

287

288

289

290

291

292

293

294

295

296

297

298

299

300

301

302

303

304

305

<?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 '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);

    }

  }

  /**

   * 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['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']);

    }

    if (!empty($options['autoloaderzfpath'])) {

      $autoloader = $this->getAutoloader();

      if (method_exists($autoloader, 'setZfPath')) {

        $zfPath  = $options['autoloaderzfpath'];

        $zfVersion = !empty($options['autoloaderzfversion'])

              ? $options['autoloaderzfversion']

              : 'latest';

        $autoloader->setZfPath($zfPath, $zfVersion);

      }

    }

    if (!empty($options['bootstrap'])) {

      $bootstrap = $options['bootstrap'];

      if (is_string($bootstrap)) {

        $this->setBootstrap($bootstrap);

      } elseif (is_array($bootstrap)) {

        if (empty($bootstrap['path'])) {

          throw new Zend_Application_Exception('No bootstrap path provided');

        }

        $path = $bootstrap['path'];

        $class = null;

        if (!empty($bootstrap['class'])) {

          $class = $bootstrap['class'];

        }

        $this->setBootstrap($path, $class);

      } else {

        throw new Zend_Application_Exception('Invalid bootstrap information provided');

      }

    }

    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 = '')

  {

    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 . '.');

      }

    }

    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 = 'Bootstrap';

    }

    if (!class_exists($class, false)) {

      require_once $path;

      if (!class_exists($class, false)) {

        throw new Zend_Application_Exception('Bootstrap class not found');

      }

    }

    $this->_bootstrap = new $class($this);

    if (!$this->_bootstrap instanceof Zend_Application_Bootstrap_Bootstrapper) {

      throw new Zend_Application_Exception('Bootstrap class does not implement Zend_Application_Bootstrap_Bootstrapper');

    }

    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 === 'dist')

           ? pathinfo(basename($file, ".$suffix"), PATHINFO_EXTENSION)

           : $suffix;

    switch (strtolower($suffix)) {

      case 'ini':

        $config = new Zend_Config_Ini($file, $environment);

        break;

      case 'xml':

        $config = new Zend_Config_Xml($file, $environment);

        break;

      case 'json':

        $config = new Zend_Config_Json($file, $environment);

        break;

      case 'yaml':

      case 'yml':

        $config = new Zend_Config_Yaml($file, $environment);

        break;

      case 'php':

      case 'inc':

        $config = include $file;

        if (!is_array($config)) {

          throw new Zend_Application_Exception('Invalid configuration file provided; PHP file does not return array value');

        }

        return $config;

        break;

      default:

        throw new Zend_Application_Exception('Invalid configuration file provided; unknown config type');

    }

    return $config->toArray();

  }

}

ログイン後にコピー

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

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

您可能感兴趣的文章:

  • Zend Framework自定义Helper类相关注意事项总结
  • Zend Framework教程之Bootstrap类用法概述
  • Zend Framework教程之资源(Resources)用法实例详解
  • Zend Framework教程之Application和Bootstrap用法详解
  • Zend Framework教程之配置文件application.ini解析
  • Zend Framework教程之Loader以及PluginLoader用法详解
  • Zend Framework教程之Autoloading用法详解
  • Zend Framework教程之Resource Autoloading用法实例
  • Zend Framework教程之MVC框架的Controller用法分析
  • Zend Framework教程之路由功能Zend_Controller_Router详解
  • Zend Framework教程之Zend_Controller_Plugin插件用法详解
  • Zend Framework教程之响应对象的封装Zend_Controller_Response实例详解
  • Zend Framework教程之动作的基类Zend_Controller_Action详解
  • Zend Framework教程之前端控制器Zend_Controller_Front用法详解

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1110089.htmlTechArticleZend Framework教程之Application用法实例详解,zendframework 本文实例讲述了Zend Framework教程之Application用法。分享给大家供大家参考,具体如下:...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Microsoft NET Framework のインストールの問題エラー コード 0x800c0006 の修正 Microsoft NET Framework のインストールの問題エラー コード 0x800c0006 の修正 May 05, 2023 pm 04:01 PM

Microsoft NET Framework のインストールの問題エラー コード 0x800c0006 の修正

Windows 11/10 で SetupDiag を使用して Windows アップグレードの問題を特定する方法 Windows 11/10 で SetupDiag を使用して Windows アップグレードの問題を特定する方法 Apr 17, 2023 am 10:07 AM

Windows 11/10 で SetupDiag を使用して Windows アップグレードの問題を特定する方法

SCNotification が動作を停止しました [問題を解決する 5 つのステップ] SCNotification が動作を停止しました [問題を解決する 5 つのステップ] May 17, 2023 pm 09:35 PM

SCNotification が動作を停止しました [問題を解決する 5 つのステップ]

Microsoft .NET Framework 4.5.2、4.6、および 4.6.1 は 2022 年 4 月にサポートを終了します Microsoft .NET Framework 4.5.2、4.6、および 4.6.1 は 2022 年 4 月にサポートを終了します Apr 17, 2023 pm 02:25 PM

Microsoft .NET Framework 4.5.2、4.6、および 4.6.1 は 2022 年 4 月にサポートを終了します

Windows 11 の KB5012643 により .NET Framework 3.5 アプリが中断される Windows 11 の KB5012643 により .NET Framework 3.5 アプリが中断される May 09, 2023 pm 01:07 PM

Windows 11 の KB5012643 により .NET Framework 3.5 アプリが中断される

Zend Framework でのアクセス許可制御に ACL (アクセス コントロール リスト) を使用する方法 Zend Framework でのアクセス許可制御に ACL (アクセス コントロール リスト) を使用する方法 Jul 29, 2023 am 09:24 AM

Zend Framework でのアクセス許可制御に ACL (アクセス コントロール リスト) を使用する方法

PHP 実装フレームワーク: Zend Framework 入門チュートリアル PHP 実装フレームワーク: Zend Framework 入門チュートリアル Jun 19, 2023 am 08:09 AM

PHP 実装フレームワーク: Zend Framework 入門チュートリアル

Cooler Master と Framework が、ラップトップのマザーボードと互換性のある革新的なミニケース キットを発売 Cooler Master と Framework が、ラップトップのマザーボードと互換性のある革新的なミニケース キットを発売 Dec 15, 2023 pm 05:35 PM

Cooler Master と Framework が、ラップトップのマザーボードと互換性のある革新的なミニケース キットを発売

See all articles