Jadual Kandungan
1. 应用配置
2. 应用基础目录
3. 应用组件
4. 核心应用组件
5. 应用的生命周期
Rumah pembangunan bahagian belakang tutorial php Yii框架官方教程增补篇6——基础知识:应用、组件、配置、生命周期

Yii框架官方教程增补篇6——基础知识:应用、组件、配置、生命周期

Feb 11, 2017 am 09:32 AM



应用是指请求处理中的执行上下文。它的主要任务是分析用户请求并将其分派到合适的控制器中以作进一步处理。 它同时作为服务中心,维护应用级别的配置。鉴于此,应用也叫做前端控制器

应用由入口脚本创建为一个单例对象。这个应用单例对象可以在任何地方通过 Yii::app() 访问。

1. 应用配置

默认情况下,应用是一个 CWebApplication 的实例。要自定义它,我们通常需要提供一个配置文件 (或数组) 以创建应用实例时初始化其属性值。自定义应用的另一种方式是继承 CWebApplication。

配置是一个键值对数组。每个键代表应用实例中某属性的名字,每个值即相应属性的初始值。 例如,如下的配置设定了应用的 name 和 defaultController 属性。


array(
    'name'=>'Yii Framework',
    'defaultController'=>'site',
)
Salin selepas log masuk

我们通常在一个单独的PHP 脚本(e.g.protected/config/main.php)中保存这些配置。在脚本中, 我们通过以下方式返回此配置数组:


return array(...);
Salin selepas log masuk

要应用此配置,我们将配置文件的名字作为参数传递给应用的构造器,或像下面这样传递到Yii::createWebApplication() 。这通常在 入口脚本 中完成:


$app=Yii::createWebApplication($configFile);
Salin selepas log masuk

提示: 如果应用配置非常复杂,我们可以把它分割为若干文件,每个文件返回配置数组中的一部分。 然后,在主配置文件中,我们调用PHP的 include() 包含其余的配置文件并把它们合并为一个完整的配置数组。

2. 应用基础目录

应用基础目录指包含了所有安全敏感的PHP脚本和数据的根目录。默认状态下,它是一个位于含有入口脚本目录的名为protected 的子目录。它可以通过设置 application configuration 中的 basePath 属性自定义。

在应用基础目录下的内容应该保护起来防止网站访客直接访问。对于 Apache HTTP 服务器, 这可以通过在基础目录中放置一个 .htaccess 文件很简单的实现。 .htaccess 内容如下:

deny from all
Salin selepas log masuk

3. 应用组件

应用的功能可以通过其灵活的组件结构轻易地自定义或增强。应用管理了一系列应用组件,每个组件实现一特定功能。 例如,应用通过 CUrlManager 和 CHttpRequest 的帮助解析来自用户的请求。

通过配置应用的 components 属性, 我们可以自定义应用中用到的任何组件类及其属性值。例如,我们可以配置应用的CMemCache 组件, 这样它就可以使用多个 memcache 服务器实现缓存:


array(
    ......
    'components'=>array(
        ......
        'cache'=>array(
            'class'=>'CMemCache',
            'servers'=>array(
                array('host'=>'server1', 'port'=>11211, 'weight'=>60),
                array('host'=>'server2', 'port'=>11211, 'weight'=>40),
            ),
        ),
    ),
)
Salin selepas log masuk

如上所示,我们在 components 数组中添加了 cache 元素。cache 元素表明此组件的类是 CMemCache, 他的servers 属性应依此初始化。

要访问一个应用组件,使用 Yii::app()->ComponentID ,其中的 ComponentID 是指组件的ID(例如Yii::app()->cache)。

应用的组件可以通过在其配置中设置 enabled 为 false 禁用。当我们访问被禁用的组件时将返回 Null。

提示: 默认情况下,应用组件会按需创建。这意味着一个应用的组件如果没有在一个用户请求中被访问,它可能根本不被创建。 因此,如果一个应用配置了很多组件,其总体性能可能并不会下降。有的应用组件 (例如 CLogRouter) 可能需要在无论它们是否被访问的情况下都要被创建。 要实现这个,需将其ID列在应用的preload 属性里。

4. 核心应用组件

Yii 预定义了一系列核心应用组件,提供常见 Web 应用中所用的功能。例如, request 组件用于解析用户请求并提供例如 URL,cookie 等信息。 通过配置这些核心组件的属性,我们可以在几乎所有的方面修改Yii 的默认行为。

下面我们列出了由 CWebApplication 预定义的核心组件。

  • assetManager: CAssetManager - 管理私有资源文件的发布。

  • authManager: CAuthManager - 管理基于角色的访问控制 (RBAC).

  • cache: CCache - 提供数据缓存功能。注意,你必须指定实际的类(例如CMemCache, CDbCache)。 否则,当你访问此组件时将返回 NULL。

  • clientScript: CClientScript - 管理客户端脚本 (javascripts 和 CSS).

  • coreMessages: CPhpMessageSource - 提供 Yii 框架用到的核心信息的翻译。

  • db: CDbConnection - 提供数据库连接。注意,使用此组件你必须配置其 connectionString 属性。

  • errorHandler: CErrorHandler - 处理未捕获的 PHP 错误和异常。

  • format: CFormatter - 格式化数值显示。此功能从版本 1.1.0 起开始提供。

  • messages: CPhpMessageSource - 提供Yii应用中使用的信息翻译。

  • request: CHttpRequest - 提供关于用户请求的信息。

  • securityManager: CSecurityManager - 提供安全相关的服务,例如散列,加密。

  • session: CHttpSession - 提供session相关的功能。

  • statePersister: CStatePersister - 提供全局状态持久方法。

  • urlManager: CUrlManager - 提供 URL 解析和创建相关功能

  • user: CWebUser - 提供当前用户的识别信息。

  • themeManager: CThemeManager - 管理主题。

5. 应用的生命周期

当处理用户请求时,应用将经历如下声明周期:

  1. 通过 CApplication::preinit() 预初始化应用;

  2. 设置类的自动装载器和错误处理;

  3. 注册核心类组件;

  4. 加载应用配置;

  5. 通过 CApplication::init() 初始化应用:

  • 注册应用行为;

  • 载入静态应用组件;

  • 触发 onBeginRequest 事件;

  • 处理用户请求:

    • 解析用户请求;

    • 创建控制器;

    • 运行控制器;

  • 触发 onEndRequest 事件。

  • yii执行流程

    以上就是Yii框架官方教程增补篇6——基础知识:应用、组件、配置、生命周期的内容,更多相关内容请关注PHP中文网(www.php.cn)!


    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    Video Face Swap

    Video Face Swap

    Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Topik panas

    Tutorial Java
    1663
    14
    Tutorial PHP
    1264
    29
    Tutorial C#
    1237
    24
    Perisian tengah rangka kerja Yii: menyediakan sokongan storan data berbilang untuk aplikasi Perisian tengah rangka kerja Yii: menyediakan sokongan storan data berbilang untuk aplikasi Jul 28, 2023 pm 12:43 PM

    Perisian tengah rangka kerja Yii: menyediakan sokongan storan data berbilang untuk aplikasi Pengenalan Middleware (perisian tengah) ialah konsep penting dalam rangka kerja Yii, yang menyediakan sokongan storan data berbilang untuk aplikasi. Middleware bertindak seperti penapis, memasukkan kod tersuai antara permintaan dan respons aplikasi. Melalui perisian tengah, kami boleh memproses, mengesahkan, menapis permintaan, dan kemudian menyerahkan hasil yang diproses kepada perisian tengah atau pengendali akhir yang seterusnya. Middleware dalam rangka kerja Yii sangat mudah digunakan

    Langkah-langkah untuk melaksanakan caching halaman web dan chunking halaman menggunakan rangka kerja Yii Langkah-langkah untuk melaksanakan caching halaman web dan chunking halaman menggunakan rangka kerja Yii Jul 30, 2023 am 09:22 AM

    Langkah-langkah untuk melaksanakan caching halaman web dan chunking halaman menggunakan rangka kerja Yii Pengenalan: Semasa proses pembangunan web, untuk meningkatkan prestasi dan pengalaman pengguna tapak web, selalunya perlu untuk cache dan chunk halaman. Rangka kerja Yii menyediakan fungsi caching dan reka letak yang berkuasa, yang boleh membantu pembangun melaksanakan caching halaman web dan chunking halaman dengan pantas Artikel ini akan memperkenalkan cara menggunakan rangka kerja Yii untuk melaksanakan caching halaman web dan chunking halaman. 1. Hidupkan caching halaman web Dalam rangka kerja Yii, caching halaman web boleh dihidupkan melalui fail konfigurasi. Buka fail konfigurasi utama co

    Yii Framework Middleware: Tambahkan keupayaan pengelogan dan penyahpepijatan pada aplikasi anda Yii Framework Middleware: Tambahkan keupayaan pengelogan dan penyahpepijatan pada aplikasi anda Jul 28, 2023 pm 08:49 PM

    Perisian tengah rangka kerja Yii: Tambah keupayaan pengelogan dan penyahpepijatan pada aplikasi [Pengenalan] Semasa membangunkan aplikasi web, biasanya kami perlu menambah beberapa ciri tambahan untuk meningkatkan prestasi dan kestabilan aplikasi. Rangka kerja Yii menyediakan konsep perisian tengah yang membolehkan kami melaksanakan beberapa tugas tambahan sebelum dan selepas aplikasi mengendalikan permintaan. Artikel ini akan memperkenalkan cara menggunakan fungsi perisian tengah bagi rangka kerja Yii untuk melaksanakan fungsi pengelogan dan penyahpepijatan. [Apakah middleware] Middleware merujuk kepada pemprosesan permintaan dan respons sebelum dan selepas aplikasi memproses permintaan.

    Cara menggunakan rangka kerja Yii dalam PHP Cara menggunakan rangka kerja Yii dalam PHP Jun 27, 2023 pm 07:00 PM

    Dengan perkembangan pesat aplikasi web, pembangunan web moden telah menjadi kemahiran penting. Banyak rangka kerja dan alatan tersedia untuk membangunkan aplikasi web yang cekap, antaranya rangka kerja Yii adalah yang sangat popular. Yii ialah rangka kerja PHP berasaskan komponen berprestasi tinggi yang menggunakan corak dan teknologi reka bentuk terkini, menyediakan alatan dan komponen yang berkuasa serta sesuai untuk membina aplikasi web yang kompleks. Dalam artikel ini, kita akan membincangkan cara menggunakan rangka kerja Yii untuk membina aplikasi web. Pasang rangka kerja Yii dahulu,

    Cara menggunakan pengawal untuk mengendalikan permintaan Ajax dalam rangka kerja Yii Cara menggunakan pengawal untuk mengendalikan permintaan Ajax dalam rangka kerja Yii Jul 28, 2023 pm 07:37 PM

    Dalam rangka kerja Yii, pengawal memainkan peranan penting dalam memproses permintaan. Selain mengendalikan permintaan halaman biasa, pengawal juga boleh digunakan untuk mengendalikan permintaan Ajax. Artikel ini akan memperkenalkan cara mengendalikan permintaan Ajax dalam rangka kerja Yii dan memberikan contoh kod. Dalam rangka kerja Yii, pemprosesan permintaan Ajax boleh dijalankan melalui langkah-langkah berikut: Langkah pertama ialah mencipta kelas pengawal (Pengawal). Anda boleh mewarisi kelas pengawal asas yiiwebCo yang disediakan oleh rangka kerja Yii

    Alat penyahpepijatan dalam rangka kerja Yii: aplikasi pemprofilan dan penyahpepijatan Alat penyahpepijatan dalam rangka kerja Yii: aplikasi pemprofilan dan penyahpepijatan Jun 21, 2023 pm 06:18 PM

    Dalam pembangunan aplikasi web moden, alat penyahpepijatan amat diperlukan. Mereka membantu pembangun mencari dan menyelesaikan pelbagai masalah dengan aplikasi mereka. Sebagai rangka kerja aplikasi web yang popular, rangka kerja Yii secara semula jadi menyediakan beberapa alat penyahpepijatan. Artikel ini akan menumpukan pada alat penyahpepijatan dalam rangka kerja Yii dan membincangkan cara alat tersebut membantu kami menganalisis dan nyahpepijat aplikasi. GiiGii ialah penjana kod untuk rangka kerja Yii. Ia boleh menjana kod secara automatik untuk aplikasi Yii, seperti model, pengawal, paparan, dsb. Menggunakan Gii,

    Sulitkan dan nyahsulit data sensitif menggunakan perisian tengah rangka kerja Yii Sulitkan dan nyahsulit data sensitif menggunakan perisian tengah rangka kerja Yii Jul 28, 2023 pm 07:12 PM

    Menyulitkan dan menyahsulit data sensitif menggunakan perisian tengah rangka kerja Yii Pengenalan: Dalam aplikasi Internet moden, privasi dan keselamatan data adalah isu yang sangat penting. Untuk memastikan bahawa data sensitif pengguna tidak boleh diakses oleh pelawat yang tidak dibenarkan, kami perlu menyulitkan data ini. Rangka kerja Yii memberikan kami cara yang mudah dan berkesan untuk melaksanakan fungsi menyulitkan dan menyahsulit data sensitif. Dalam artikel ini, kami akan membincangkan cara untuk mencapai ini menggunakan perisian tengah rangka kerja Yii. Pengenalan kepada rangka kerja Yii Rangka kerja Yii ialah rangka kerja PHP berprestasi tinggi.

    Bagaimana untuk merujuk css dalam rangka kerja yii Bagaimana untuk merujuk css dalam rangka kerja yii Oct 12, 2023 pm 01:47 PM

    Kaedah untuk merujuk CSS dalam rangka kerja Yii: 1. Gaya sebaris, tulis gaya CSS terus pada elemen HTML dalam fail paparan 2. Helaian gaya dalaman, gunakan tag gaya dalam teg kepala fail paparan untuk menentukan gaya CSS; 3. Untuk helaian gaya luaran, cipta fail CSS yang berasingan dan rujuknya menggunakan teg pautan dalam fail paparan.

    See all articles