コンポーネント内のコントローラーのインスタンスにアクセスしたい場合は、コンポーネントのinitialize()またはstartup()メソッドを実装する必要があります。これら 2 つの特別なメソッドは、最初の引数としてコントローラーへの参照を受け取り、自動的に呼び出されます。 initialize() メソッドは、コントローラーの beforeFilter() メソッドが実行される前に自動的に呼び出され、startup() メソッドは beforeFilter メソッドの実行後に自動的に呼び出されます。何らかの理由で、コントローラーが構築操作を実行するときに start() メソッドが呼び出されたくない場合は、クラス メンバー変数 $disableStartup を true に設定できます。
コントローラーの beforeFilter() の前に何かを実行したい場合は、initialize() メソッドが最も適切な選択です。
class CheckComponent extends Object {
//Controller::beforeFilter()の前に呼び出されます
functionInitialize(&$controller) {
//後で使用するためにコントローラ参照を保存します
$this->controller = & $controller;
}
//Controller::beforeFilter()後に呼び出される
function start(&$controller) {
}
function redirectSomewhere($value) {
// コントローラーを使用するメソッド
$this- >controller->redirect($value);
}
}
?>
class CheckComponent extends Object {
//Before Controller::beforeFilter() Called
関数の初期化(&$controller) {
// 後で使用するためにコントローラー参照を保存します
$this->controller =& $controller;
}
//in Controller::beforeFilter() その後、呼び出されます
function starting(&$controller) {
}
function redirectSomewhere($value) {
// コントローラーの使用方法
$this->controller->redirect($value) ;
}
}
?>
場合によっては、コンポーネント内で他のコンポーネントを使用する必要がある場合があります。コンポーネント内でクラス メンバー変数 $components を宣言するだけで済みます (コントローラーの場合と同様)。その値はコンポーネントの配列です。使用したい名前。
class MyComponent extends Object {
// 使用する必要があるその他のコンポーネント
var $components = array('Session', 'Math');
function doStuff() {
$result = $this ->Math->doComplexOperation(1, 2);
$this->Session->write('stuff', $result);
}
}
?>
class MyComponent extends Object {
// 使用する必要があるその他のコンポーネント
var $components = array('Session', 'Math');
function doStuff() {
$result = $ this->Math->doComplexOperation(1, 2);
$this->Session->write('stuff', $result);
}
}
?>
Useコンポーネント内またはモデルへのアクセスはお勧めできません。ただし、可能です。その場合は、使用するモデルのインスタンスを手動で生成する必要があります。以下に例を示します。
class MathComponent extends Object {
function doComplexOperation($amount1, $amount2) {
return $amount1 + $amount2;
}
function doUberComplexOperation ($amount1, $amount2) {
$userInstance = ClassRegistry::init('User');
$totalUsers = $userInstance->find('count');
return ($amount1 + $amount2) / $totalUsers;
}
}
?> ;
class MathComponent extends Object {
function doComplexOperation($amount1, $amount2) {
return $amount1 + $amount2;
}
function doUberComplexOperation ($amount1, $amount2) {
$userInstance = ClassRegistry::init('User');
$totalUsers = $userInstance->find('count');
return ($amount1 + $amount2) / $totalUsers;
}
}
?>
このセクションのコメントを参照
3.6.3.3 コンポーネント内で他のコンポーネントを使用する
翻訳
このセクションのみを表示
コメント(0)
履歴
翻訳はありませんこのセクションについてはまだです。翻訳についての詳細情報
場合によっては、コンポーネントの 1 つが別のコンポーネントを使用する必要がある場合があります。
他のコンポーネントをコントローラーに含めるのとまったく同じ方法でコンポーネントに含めることができます。 $componentsvar.
class CustomComponent extends Object {
var $name = "Custom"; // コンポーネントの名前
var $components = array( "Existing" );コンポーネントは
functionInitialize(&$controller) {
$this->Existing->foo();
}
function bar() {
// ...
}
}
?> を使用します。
class CustomComponent extends Object {
var $name = "Custom"; // コンポーネントの名前
var $components = array( "Existing" ) // コンポーネントが使用する他のコンポーネント
function input(&) $controller) {
$this->既存->foo();
}
function bar() {
// ...
}
}
?>
< ;?php
class ExistingComponent extends Object {
var $name = "Existing";
functionInitialize(&$controller) {
$this->Parent->bar();
}
function foo() {
// ...
}}
? & Gt;

CakePHP是一个开源的PHPMVC框架,它广泛用于Web应用程序的开发。CakePHP具有许多功能和工具,其中包括一个强大的数据库查询构造器,用于交互性能数据库。该查询构造器允许您使用面向对象的语法执行SQL查询,而不必编写繁琐的SQL语句。本文将介绍如何使用CakePHP中的数据库查询构造器。建立数据库连接在使用数据库查询构造器之前,您首先需要在Ca

CakePHP是一个强大的PHP框架,为开发人员提供了很多有用的工具和功能。其中之一是分页,它可以帮助我们将大量数据分成几页,从而简化浏览和操作。默认情况下,CakePHP提供了一些基本的分页方法,但有时你可能需要创建一些自定义的分页方法。这篇文章将向您展示如何在CakePHP中创建自定义分页。步骤1:创建自定义分页类首先,我们需要创建一个自定义分页类。这个

在当今数字化时代,应用程序对于企业和个人来说,已经成为了不可或缺的一部分。应用程序能够让人们更加便捷地进行各种操作,而PHP和CakePHP框架则是日益流行的应用程序开发工具。在本文中,我们将讨论如何使用PHP和CakePHP框架进行应用程序开发。一、PHP是什么?PHP(外文全称为“HypertextPreprocessor”)是一种开源的服务器端脚本语

CakePHP是一种流行的PHP框架,用于开发Web应用程序。与许多其他PHP框架一样,CakePHP也提供了许多有用的功能和插件来帮助业务流程,其中包括生成PDF文件。这项任务可以使用FPDF插件轻松完成。本文将介绍如何在CakePHP中使用FPDF。FPDF是一种开源的PHP类库,用于生成PDF文件。它具有许多有用的功能,例如嵌入字体、添加图像、绘制基本

CakePHP是一个流行的PHP框架,它提供了方便的ORM(对象关系映射)功能,使得查询和更新数据库变得非常容易。本文将介绍如何在CakePHP中进行数据查询和更新。我们将从简单的查询和更新开始,逐步深入,了解如何使用条件和关联的模型来更复杂地查询和更新数据。基本查询首先,让我们看看如何进行最简单的查询。假设我们有一个名为“Users”的数据表,并且我们想要

CakePHP是一款优秀的PHP开发框架,它通过提供一系列强大的功能和工具,简化了Web应用程序的开发过程。而Guzzle是一个PHPHTTP客户端和请求库,它能够帮助开发者轻松地发送HTTP请求和访问Web服务。在本文中,我们将介绍如何在CakePHP中使用Guzzle,以便更加高效地开发Web应用程序。一、安装Guzzle首先,我们需要在CakePHP

CakePHP是一款流行的PHP开发框架,它提供了快速开发Web应用程序所需的基本功能和结构。在现代应用中,使用多个数据库连接已经成为了一个普遍的需求,例如,建立主从数据库连接或将数据分片到不同的数据库中。本文将介绍如何在CakePHP中使用多个数据库连接。CakePHP中的默认数据库连接在开始之前,让我们先了解一下CakePHP中默认的数据库连接。Cake

CakePHP是一款流行的PHP框架,它为Web开发提供了许多便利的功能。其中一个非常有用的功能是Cookie组件。在本文中,我们将介绍如何在CakePHP中使用Cookie组件来存储和检索数据。一、什么是Cookie?Cookie是一个小的数据片段,存储在网站上的用户计算机上。它可以用来存储用户喜好、登陆信息和其他相关的数据。Cookie可以被服务器和客户


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

Dreamweaver Mac版
ビジュアル Web 開発ツール

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。
