首頁 後端開發 php教程 Yii快速入门经典教程_PHP

Yii快速入门经典教程_PHP

May 28, 2016 am 11:49 AM
yii 入門

本文讲述了Yii快速入门教程。分享给大家供大家参考,具体如下:

Ⅰ、基本概念

代码如下:

$component->onClicked=$callback;


这里的 $callback 指向了一个有效的 PHP 回调。它可以是一个全局函数也可以是类中的一个方法。如果是后者,它必须以一个数组的方式提供: array($object,'methodName')。

事件句柄的结构如下:

function 方法名($event)
{
......
}

登入後複製

这里的 $event 即描述事件的参数(它来源于 raiseEvent() 调用)。$event 参数是 CEvent 或其子类的实例。至少,它包含了关于谁触发了此事件的信息。

事件句柄也可以是一个PHP 5.3以后支持的匿名函数。例如:

$component->onClicked=function($event) {
......
}

登入後複製

如果我们现在调用 onClicked(),onClicked 事件将被触发(在 onClicked() 中),附属的事件句柄将被自动调用。

一个事件可以绑定多个句柄。当事件触发时,这些句柄将被按照它们绑定到事件时的顺序依次执行。如果句柄决定组织后续句柄被执行,它会设置 $event->handled 为 true。

3、组件行为

组件已添加了对 mixin 的支持,并可以绑定一个或多个行为。行为是一个对象,其方法可以被它绑定的部件通过收集功能的方式来实现继承(inherited),而不是专有化继承(即普通的类继承)。一个部件可以以'多重继承'的方式实现多个行为的绑定。

行为类必须实现 IBehavior 接口。 大多数行为可以继承自 CBehavior 。如果一个行为需要绑定到一个模型, 它也可以从专为模型实现绑定特性的 CModelBehavior 或 CActiveRecordBehavior 继承。

要使用一个行为,它必须首先通过调用此行为的 attach() 方法绑定到一个组件。然后我们就可以通过组件调用此行为方法:

// $name 在组件中实现了对行为的唯一识别
$component->attachBehavior($name,$behavior);
// test() 是行为中的方法。
$component->test();

登入後複製

已绑定的行为可以像一个组件中的普通属性一样访问。例如,如果一个名为 tree 的行为绑定到了一个组件,我们就可以通过如下代码获得指向此行为的引用。

$behavior=$component->tree;
// 等于下行代码:
// $behavior=$component->asa('tree');

登入後複製

行为是可以被临时禁止的,此时它的方法就会在组件中失效。例如:

$component->disableBehavior($name);
// 下面的代码将抛出一个异常
$component->test();
$component->enableBehavior($name);
// 现在就可以使用了
$component->test();

登入後複製

两个同名行为绑定到同一个组件下是有可能的。在这种情况下,先绑定的行为则拥有优先权。

当和 events, 一起使用时,行为会更加强大。当行为被绑定到组件时,行为里的一些方法就可以绑定到组件的一些事件上了。这样一来,行为就有机观察或者改变组件的常规执行流程。

一个行为的属性也可以通过绑定到的组件来访问。这些属性包含公共成员变量以及通过 getters 和/或 setters 方式设置的属性。例如, 若一个行为有一个 xyz 的属性,此行为被绑定到组件 $a,然后我们可以使用表达式 $a->xyz 访问此行为的属性。

代码如下:

Yii::import('system.web.CController');


import方法跟 include 和 require 不同,它更加高效。导入(import)的类定义并不会真正被包含进来,直到它第一次被引用。多次导入同样的名字空间也会比 include_once 和 require_once 快得多。

我们还可以使用如下语法导入整个目录,这样此目录下的类文件就会在需要时被自动包含。

代码如下:

Yii::import('system.web.*');


除 import 外, 别名还在其他许多地方指向类。例如,路径别名可以传递给 Yii::createComponent() 以创建相应类的实例。即使类文件在之前从未被包含。

不要将路径别名和名字空间混淆了,名字空间是指对一些类名的一个逻辑组合,这样它们就可以相互区分开,即使有相同的名字。而路径别名是用于指向一个类文件或目录。路径别名与名字空间并不冲突。

代码如下:

array('AttributeList', 'Validator', 'on'=>'ScenarioList', ...附加选项)


其中:

AttributeList(特性列表)是需要通过此规则验证的特性列表字符串,每个特性名字由逗号分隔;
Validator(验证器) 指定要执行验证的种类;
on 参数是可选的,它指定此规则应被应用到的场景列表;
附加选项 是一个名值对数组,用于初始化相应验证器的属性值。

希望本文所述对大家基于Yii框架的PHP程序设计有所帮助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1421
52
Laravel 教程
1315
25
PHP教程
1266
29
C# 教程
1239
24
值得你花時間看的擴散模型教程,來自普渡大學 值得你花時間看的擴散模型教程,來自普渡大學 Apr 07, 2024 am 09:01 AM

Diffusion不僅可以更好地模仿,而且可以進行「創作」。擴散模型(DiffusionModel)是一種影像生成模型。與先前AI領域大名鼎鼎的GAN、VAE等演算法,擴散模型另闢蹊徑,其主要想法是先對影像增加噪聲,再逐步去噪的過程。其中如何去噪還原原影像是演算法的核心部分。最終演算法能夠從一張隨機的雜訊影像中產生影像。近年來,生成式AI的驚人成長將文字轉換為圖像生成、視訊生成等領域的許多令人興奮的應用提供了支援。這些生成工具背後的基本原理是擴散的概念,這是一種特殊的取樣機制,克服了先前的方法中被

一鍵生成PPT! Kimi :讓「PPT民工」先浪起來 一鍵生成PPT! Kimi :讓「PPT民工」先浪起來 Aug 01, 2024 pm 03:28 PM

Kimi:一句話,十幾秒鐘,一份PPT就新鮮出爐了。 PPT這玩意兒,可太招人煩了!開個碰頭會,要有PPT;寫個週報,要做PPT;拉個投資,要展示PPT;就連控訴出軌,都得發個PPT。大學比較像是學了個PPT專業,上課看PPT,下課做PPT。或許,37年前丹尼斯・奧斯汀發明PPT時也沒想到,有一天PPT竟然如此氾濫成災。嗎嘍們做PPT的苦逼經歷,說起來都是淚。 「一份二十多頁的PPT花了三個月,改了幾十遍,看到PPT都想吐」;「最巔峰的時候,一天做了五個PPT,連呼吸都是PPT」;「臨時開個會,都要做個

CVPR 2024全部獎項公佈!近萬人線下參會,Google華人研究員獲最佳論文獎 CVPR 2024全部獎項公佈!近萬人線下參會,Google華人研究員獲最佳論文獎 Jun 20, 2024 pm 05:43 PM

北京時間6月20日凌晨,在西雅圖舉辦的國際電腦視覺頂會CVPR2024正式公佈了最佳論文等獎項。今年共有10篇論文獲獎,其中2篇最佳論文,2篇最佳學生論文,另外還有2篇最佳論文提名和4篇最佳學生論文提名。電腦視覺(CV)領域的頂級會議是CVPR,每年都會吸引大量研究機構和高校參會。根據統計,今年共提交了11532份論文,2719篇被接收,錄取率為23.6%。根據佐治亞理工學院對CVPR2024的數據統計分析,從研究主題來看,論文數量最多的是圖像和視頻合成與生成(Imageandvideosyn

PyCharm社群版安裝指南:快速掌握全部步驟 PyCharm社群版安裝指南:快速掌握全部步驟 Jan 27, 2024 am 09:10 AM

快速入門PyCharm社群版:詳細安裝教學全解析導言:PyCharm是一個功能強大的Python整合開發環境(IDE),它提供了一套全面的工具,可以幫助開發人員更有效率地編寫Python程式碼。本文將詳細介紹如何安裝PyCharm社群版,並提供具體的程式碼範例,幫助初學者快速入門。第一步:下載和安裝PyCharm社群版要使用PyCharm,首先需要從其官方網站上下

從裸機到700億參數大模型,這裡有一個教程,還有現成可用的腳本 從裸機到700億參數大模型,這裡有一個教程,還有現成可用的腳本 Jul 24, 2024 pm 08:13 PM

我們知道LLM是在大規模電腦叢集上使用海量資料訓練得到的,本站曾介紹過不少用於輔助和改進LLM訓練流程的方法和技術。而今天,我們要分享的是一篇深入技術底層的文章,介紹如何將一堆連作業系統也沒有的「裸機」變成用來訓練LLM的電腦叢集。這篇文章來自於AI新創公司Imbue,該公司致力於透過理解機器的思維方式來實現通用智慧。當然,將一堆連作業系統也沒有的「裸機」變成用於訓練LLM的電腦叢集並不是一個輕鬆的過程,充滿了探索和試錯,但Imbue最終成功訓練了一個700億參數的LLM,並在此過程中積累

AI在用 | AI製作獨居女孩生活Vlog,3天狂攬萬點讚量 AI在用 | AI製作獨居女孩生活Vlog,3天狂攬萬點讚量 Aug 07, 2024 pm 10:53 PM

機器之能報道編輯:楊文以大模型、AIGC為代表的人工智慧浪潮已經在悄悄改變我們生活及工作方式,但絕大部分人依然不知道該如何使用。因此,我們推出了「AI在用」專欄,透過直覺、有趣且簡潔的人工智慧使用案例,來具體介紹AI使用方法,並激發大家思考。我們也歡迎讀者投稿親自實踐的創新用例。影片連結:https://mp.weixin.qq.com/s/2hX_i7li3RqdE4u016yGhQ最近,獨居女孩的生活Vlog在小紅書上走紅。一個插畫風格的動畫,再配上幾句治癒系文案,短短幾天就能輕鬆狂攬上

技術入門者必看:C語言和Python難易度解析 技術入門者必看:C語言和Python難易度解析 Mar 22, 2024 am 10:21 AM

標題:技術入門者必看:C語言和Python難易度解析,需要具體程式碼範例在當今數位化時代,程式設計技術已成為一項越來越重要的能力。無論是想要從事軟體開發、數據分析、人工智慧等領域,還是僅僅出於興趣學習編程,選擇一門合適的程式語言是第一步。而在眾多程式語言中,C語言和Python作為兩種廣泛應用的程式語言,各有其特色。本文將對C語言和Python的難易度進行解析

入門學習C語言的五款程式設計軟體 入門學習C語言的五款程式設計軟體 Feb 19, 2024 pm 04:51 PM

C語言作為一門廣泛應用的程式語言,對於想從事電腦程式設計的人來說是必學的基礎語言之一。然而,對於初學者來說,學習新的程式語言可能會有些困難,尤其是缺乏相關的學習工具和教材。在本文中,我將介紹五款幫助初學者入門C語言的程式設計軟體,幫助你快速上手。第一款程式軟體是Code::Blocks。 Code::Blocks是一個免費的開源整合開發環境(IDE),適用於

See all articles