ホームページ バックエンド開発 PHPチュートリアル Zend Framework アプリケーションのコンテンツを XML プラグインに変換する_PHP チュートリアル

Zend Framework アプリケーションのコンテンツを XML プラグインに変換する_PHP チュートリアル

Jul 21, 2016 pm 02:54 PM
framework xml zend のために コンテンツ アプリ プラグイン 変換する

このブログ投稿では、Thijs Feryn が Zend_Controller_Plugin_Abstract のフック メソッドを実装して、元のプログラムのコンテキスト スイッチング コントローラー アシスタントを使用せずに、返されたコンテンツ応答を特定の XML 形式に変換します。 /2009/05/converting-your-zend-framework-mvc-application-into-an-xml-webservice-using-one-single-plugin/

コード:

クリップボードにコピー引用コンテンツ: [www.bkjia.com]Liehuo.Net Codes /*** My_Plugin_Xml コンポーネント
* Zend Framework MVC Web サイトを XML Web サービスに変換します
* Liehuo.Net からのファイル
*/
/**
* My_Plugin_Xml クラス
*
* @author Thijs Feryn
*/
class My_Plugin_Xml は Zend_Controller_Plugin_Abstract を拡張します
{
/**
* フロントコントローラーを保存します
*
* @var Zend_Controller_Front
*/
private $_front
/**
* XML 出力を DOMDocument 形式で保存します
*
* @var DOMDocument
; */
プライベート $_xml;
/**
* クラスコンストラクター
*/
パブリック関数 __construct()
{
$this->_front = Zend_Controller_Front::getInstance();
$layout = Zend_Layout::getMvcInstance();
$layout->disableLayout();
}
/**
* DOMDocument を構築して出力を XML に変換します
*
* @parammixed $return
* @param Exception $Exception
* @return string
*/
プライベート関数 _getXML($return = null,Exception $例外 = null)
{
$this->_xml = new DOMDocument( '1.0', 'UTF-8');
$this->xml->formatOutput = true;

$responseNode = $this->xml->createElement('response'); = $this->xml->createElement('例外');
if(null !== $例外 && $例外インスタンスオブ例外 ){
$例外ノード->appendChild(
$this->_xml-> ;createElement('メッセージ',
$例外->getMessage()
)
);
$例外ノード->appendChild(
$this->_xml->createElement('コード',
$例外->) ;getCode()
)
);
$ExceptionNode->appendChild(
$this->_xml->createElement('type',
get_class($Exception)
)
}

$responseNode ->appendChild($ExceptionNode);
if(null !== $return){
$responseNode->appendChild(
$this->serialize('return',$return)
);
$responseNode->appendChild(
$this->xml->createElement('return')
);

$this->xml->appendChild($responseNode); ->xml->saveXML();
}
/**
* HTTP 応答オブジェクトを変更します
* HTML 本文を削除し、XML に置き換えて、コンテンツ タイプを変更します
*
* @parammixed $return
* @param Exception $Exception
*/
プライベート関数 _setResponse($return = false,Exception $例外 = null)
{
$this->getResponse()- >setHeader('Content-Type','text/xml; charset=UTF-8');
$this->getResponse()->clearBody(); ;setBody(
$this->_getXML($return,$Exception)
);
/**
* 混合値を DOMElement 形式で XML にシリアル化します
* このメソッドはオブジェクトと配列の場合に再帰的に使用できます
*
* @param string $name
* @parammixed $value
* @return DOMElement
*/
プライベート関数 _serialize($name,$value)
{
if(is_array($) value)){
$element = $this->xml->createElement($name);
foreach ($value as $k=>$v){
if(is_numeric($k)){
$ k = 'アイテム';
$element->appendChild($this->_serialize($k,$v));
}
} elseif(is_object($value)){
$element = $this ->xml->createElement($name);
$reflection = new ReflectionObject($value);
$properties = $reflection->getProperties();
foreach ($property として){
if( $property->isPublic()){
$element->appendChild(
$this->_serialize(
$property->getName(),
$property->getValue($value)
)
);
}
}
}else{
$element = $this->xml->createElement(
$name,
(string)$value
);
return $element
/* *
* アプリケーションで例外がスローされたかどうかを取得する preDispatch フック
* 例外がスローされた場合、例外は XML 出力の例外部分に渡され、スクリプトの実行が終了します
*
* @param Zend_Controller_Request_Abstract $request
*/
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
if( $this->getResponse()->isException()){
$exArray = $this->getResponse()->getException();
$this->setResponse(null,$exArray[0]) );
$this->getResponse()->sendResponse();
exit()
}
/**
* HTTP 応答を変更してビュー オブジェクトを XML にシリアル化する postDispatch フック
* 例外がスローされなかった場合、スクリプトの実行は続行され、postDispatch メソッドが呼び出されます
*
* @param Zend_Controller_Request_Abstract $request
*/
{
$view = Zend_Controller_Action_HelperBroker::getExistingHelper('ViewRenderer')->view;
}
}
_getXML() は特定の XML 構造を生成します
_setResponse() は応答の XML コンテンツを設定します
_serialize() は返されたオブジェクトを (再帰を使用して) XML にシリアル化します
preDispatch() は例外があるかどうかを判断し、例外がある場合は、例外とスクリプト実行の終了
postDispatch() は応答を返します
$this->front->registerPlugin(new My_Plugin_Xml()); を使用して



http://www.bkjia.com/PHPjc/364543.html

www.bkjia.com

tru​​e

技術記事このブログ投稿では、Thijs Feryn が Zend_Controller_Plugin_Abstract のフック メソッドを実装し、元のプログラムのコンテキスト スイッチング コントローラー アシスタントを使用せずに返されたコンテンツに応答します...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Apple Vision ProをPCに接続する方法 Apple Vision ProをPCに接続する方法 Apr 08, 2024 pm 09:01 PM

Apple Vision Pro ヘッドセットはコンピュータとネイティブ互換性がないため、Windows コンピュータに接続するように設定する必要があります。 Apple Vision Pro は発売以来、最先端の機能と充実した操作性を備えた大ヒット商品です。その理由は簡単にわかります。ただし、お使いの PC に合わせて調整することはできますが、その機能は AppleOS に大きく依存しているため、機能は制限されます。 AppleVisionPro をコンピュータに接続するにはどうすればよいですか? 1. システム要件を確認します 最新バージョンの Windows 11 が必要です (カスタム PC および Surface デバイスはサポートされていません) 64 ビット 2GHZ 以上の高速プロセッサをサポート 高性能 GPU、最大

ShazamアプリがiPhoneで動作しない:修正 ShazamアプリがiPhoneで動作しない:修正 Jun 08, 2024 pm 12:36 PM

iPhone の Shazam アプリに問題がありますか? Shazam は、曲を聞いて曲を見つけるのに役立ちます。ただし、Shazam が正常に動作しない場合、または曲が認識されない場合は、手動でトラブルシューティングを行う必要があります。 Shazam アプリの修復にはそれほど時間はかかりません。したがって、これ以上時間を無駄にすることなく、以下の手順に従って Shazam アプリの問題を解決してください。解決策 1 – 太字テキスト機能を無効にする iPhone の太字テキストが、Shazam が正しく動作しない原因である可能性があります。ステップ 1 – これは iPhone の設定からのみ実行できます。それで、開けてください。ステップ 2 – 次に、そこにある「ディスプレイと明るさ」設定を開きます。ステップ 3 – 「太字テキスト」が有効になっている場合

全角英字を半角に変換するための実践的なヒント 全角英字を半角に変換するための実践的なヒント Mar 26, 2024 am 09:54 AM

全角の英字を半角に変換する実践的なヒント. 現代の生活において私たちは英語の文字に触れる機会が多く、パソコンや携帯電話などを使用する際に英語の文字を入力する必要が多くなります。ただし、場合によっては全角の英字が登場するため、半角形式を使用する必要があります。では、全角の英字を半角に変換するにはどうすればよいでしょうか?ここでは、いくつかの実践的なヒントを紹介します。まず、全角英数字とはインプットメソッド内で全角の位置を占める文字のことを指しますが、半角英数字は全角の位置を占めます。

Edge ブラウザがこのプラグインをサポートしない理由に対する 3 つの解決策を共有します Edge ブラウザがこのプラグインをサポートしない理由に対する 3 つの解決策を共有します Mar 13, 2024 pm 04:34 PM

ユーザーが Edge ブラウザを使用する場合、より多くのニーズを満たすためにいくつかのプラグインを追加する場合があります。しかし、プラグインを追加すると、このプラグインはサポートされていないと表示されます。この問題を解決するにはどうすればよいですか?今日は編集者が 3 つの解決策を紹介しますので、ぜひ試してみてください。方法 1: 別のブラウザを使用してみてください。方法 2: ブラウザ上の Flash Player が古いか見つからないため、プラグインがサポートされていない可能性があり、公式 Web サイトから最新バージョンをダウンロードできます。方法3:「Ctrl+Shift+Delete」キーを同時に押します。 「データを消去」をクリックしてブラウザを再度開きます。

Ubuntu 24.04 に Ubuntu Notes アプリをインストールして実行する方法 Ubuntu 24.04 に Ubuntu Notes アプリをインストールして実行する方法 Mar 22, 2024 pm 04:40 PM

高校で勉強しているときに、同じクラスの他の生徒よりも多くのメモを取る、非常に明確で正確なメモを取る生徒もいます。メモをとることが趣味である人もいますが、重要なことについての小さな情報をすぐに忘れてしまうため、メモをとることが必需品である人もいます。 Microsoft の NTFS アプリケーションは、通常の講義以外にも重要なメモを保存したい学生にとって特に役立ちます。この記事では、Ubuntu24へのUbuntuアプリケーションのインストールについて説明します。 Ubuntu システムの更新 Ubuntu インストーラーをインストールする前に、Ubuntu24 では、新しく構成されたシステムが更新されていることを確認する必要があります。 Ubuntu システムでは最も有名な「a」を使用できます

PHPの月を英語の月に変換する実装方法を詳しく解説 PHPの月を英語の月に変換する実装方法を詳しく解説 Mar 21, 2024 pm 06:45 PM

この記事では、PHPの月を英語の月に変換する方法と具体的なコード例を詳しく紹介します。 PHP 開発では、デジタル月を英語の月に変換する必要がある場合があります。これは、一部の日付処理またはデータ表示シナリオでは非常に実用的です。以下に実装原理、具体的なコード例、注意点について詳しく説明します。 1. 実装原理 PHP では、DateTime クラスと format メソッドを使用して、デジタル月を英語の月に変換できます。日付

qq 音楽を mp3 形式に変換する方法 携帯電話で qq 音楽を mp3 形式に変換します qq 音楽を mp3 形式に変換する方法 携帯電話で qq 音楽を mp3 形式に変換します Mar 21, 2024 pm 01:21 PM

QQ Music を使用すると、誰でも映画を楽しんだり、退屈を解消したりすることができます。このソフトウェアを毎日使用して、あなたのニーズを簡単に満たすことができます。誰もが聴くことができる高品質の曲が多数用意されています。ダウンロードして保存することもできます。次回聴くときはインターネット接続は必要ありません。ここでダウンロードした曲は MP3 形式ではないため、他のプラットフォームでは使用できません。メンバーシップ曲の有効期限が切れると、再度聴くことはできません。そのため、 , 多くの友人が曲を MP3 形式に変換したいと考えています。ここでは、編集者が説明します。誰もが使用できるように方法を提供しています。 1. コンピュータで QQ Music を開き、右上隅の [メインメニュー] ボタンをクリックし、[オーディオトランスコーディング] をクリックし、[曲を追加] オプションを選択して、変換する必要がある曲を追加します; 2. 追加した後、曲をクリックして [mp3] に変換を選択します

全角英字を半角文字に変換する方法 全角英字を半角文字に変換する方法 Mar 25, 2024 pm 02:45 PM

全角英文字を半角文字に変換する方法 日常生活や仕事の中で、パソコンのパスワードを入力するときや文書を編集するときなど、全角英文字を半角文字に変換する必要がある場面に遭遇することがあります。レイアウトの設計。全角英数字は漢字と同じ幅の文字を指し、半角英数字はそれより狭い幅の文字を指します。実際の運用では、文字や数字をより便利に処理できるように、全角英字を半角文字に変換する簡単な方法をマスターする必要があります。 1. 全角英字と半角英字

See all articles