开始yaf之旅
目录结构
+ public <span //</span><span 网站根目录</span> - index.php <span //</span><span 入口文件</span> - .htaccess <span //</span><span 重写规则 </span> +<span conf </span>|- application.ini <span //</span><span 配置文件 </span> application/ +<span controllers </span>- Index.php <span //</span><span 默认控制器</span> +<span views </span>|+ index <span //</span><span 控制器</span> - index.phtml <span //</span><span 默认视图</span> + modules <span //</span><span 其他模块</span> - library <span //</span><span 组件目录</span> - models <span //</span><span model目录</span> - plugins <span //</span><span 插件目录</span>
入口文件
入口文件是所有请求的入口, 一般都借助于rewrite规则, 把所有的请求都重定向到这个入口文件.
一个经典的入口文件public/index.php
<?<span php </span><span define</span>("APP_PATH", <span realpath</span>(<span dirname</span>(<span __FILE__</span>) . '/../')); <span /*</span><span 指向public的上一级 </span><span */</span> <span $app</span> = <span new</span> Yaf_Application(APP_PATH . "/conf/application.ini"<span ); </span><span $app</span>->run();
重写规则
除非我们使用基于query string的路由协议(Yaf_Route_Simple, Yaf_Route_Supervar), 否则我们就需要使用WebServer提供的Rewrite规则, 把所有这个应用的请求, 都定向到上面提到的入口文件.
修改.htaccess文件
Nginx的Rewrite (nginx.conf)
<span server { listen </span><span 80</span><span ; server_name yaf.demo.com; root document_root; index index.php index.html index.htm; </span><span if</span> (!-<span e $request_filename) { rewrite </span>^/(.*) /index.php/$<span 1</span><span last; } }</span>
配置文件
在Yaf中, 配置文件支持继承, 支持分节. 并对PHP的常量进行支持. 你不用担心配置文件太大造成解析性能问题, 因为Yaf会在第一个运行的时候载入配置文件, 把格式化后的内容保持在内存中. 直到配置文件有了修改, 才会再次载入.
一个简单的配置文件application/conf/application.ini
<span [common] application.directory </span>= APP_PATH <span "</span><span /application</span><span "</span><span application.dispatcher.catchException </span>= <span 0</span><span application.dispatcher.throwException </span>= <span 0</span><span application.view.ext </span>= <span '</span><span phtml</span><span '</span><span [product : common] ;enable the error controller application.dispatcher.catchException</span>=<span 1</span>
控制器
在Yaf中, 默认的模块/控制器/动作, 都是以Index命名的, 当然,这是可通过配置文件修改的.
对于默认模块, 控制器的目录是在application目录下的controllers目录下, Action的命名规则是"名字+Action"
默认控制器application/controllers/Index.php
<?<span php </span><span class</span> IndexController <span extends</span><span Yaf_Controller_Abstract { </span><span public</span> <span function</span> indexAction() {<span //</span><span 默认Action</span> <span $this</span>->getView()->assign("content", "Hello World"<span ); } } </span>?>
视图文件
Yaf支持简单的视图引擎, 并且支持用户自定义自己的视图引擎, 比如Smarty.
对于默认模块, 视图文件的路径是在application目录下的views目录中以小写的action名的目录中.
一个默认Action的视图application/views/index/index.phtml
<html> <head> <title>Hello yaf</title> </head> <body> <?php <span echo</span> <span $content</span>;?> </body> </html>
然后在浏览器输入nginx.conf设置的servername,
表 4.2. Yaf可选配置项
名称 | 值类型 | 默认值 | 说明 |
---|---|---|---|
application.ext | String | php | PHP脚本的扩展名 |
application.bootstrap | String | Bootstrapplication.php | Bootstrap路径(绝对路径) |
application.library | String | application.directory + "/library" | 本地(自身)类库的绝对目录地址 |
application.baseUri | String | NULL | 在路由中, 需要忽略的路径前缀, 一般不需要设置, Yaf会自动判断. |
application.dispatcher.defaultModule | String | index | 默认的模块 |
application.dispatcher.throwException | Bool | True | 在出错的时候, 是否抛出异常 |
application.dispatcher.catchException | Bool | False | 是否使用默认的异常捕获Controller, 如果开启, 在有未捕获的异常的时候, 控制权会交给ErrorController的errorAction方法, 可以通过$request->getException()获得此异常对象 |
application.dispatcher.defaultController | String | index | 默认的控制器 |
application.dispatcher.defaultAction | String | index | 默认的动作 |
application.view.ext | String | phtml | 视图模板扩展名 |
application.modules | String | Index | 声明存在的模块名, 请注意, 如果你要定义这个值, 一定要定义Index Module |
application.system.* | String | * | 通过这个属性, 可以修改yaf的runtime configure, 比如application.system.lowcase_path, 但是请注意只有PHP_INI_ALL的配置项才可以在这里被修改, 此选项从2.2.0开始引入 |
<em id="__mceDel"><em id="__mceDel"><span <br /><br /></span></em></em>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Sama ada artikel, kertas atau tutorial, sorotan utama mana-mana dokumen ialah tajuk dan sudah tentu jadual kandungan. Ia menerangkan struktur garis besar dokumen supaya pengguna boleh sampai ke tempat dan perkara yang mereka harapkan untuk dibaca daripada dokumen tersebut. Ia juga merupakan amalan terbaik untuk menambah jadual kandungan pada kebanyakan dokumen untuk menjadikannya kelihatan lebih profesional. Hari ini, segala-galanya berlaku dalam talian dan orang ramai menggunakan Dokumen Google untuk membuat kebanyakan dokumen. Ramai pengguna masih tidak pasti cara untuk memasukkan atau menambah jadual kandungan dalam google docs. Oleh itu, kami menghasilkan artikel ini untuk menerangkan cara membuat atau memasukkan jadual kandungan dalam Dokumen Google. Cara Memasukkan Jadual Kandungan dalam Dokumen Google Langkah 1: Klik di sini untuk melawati Dokumen Google Dalam Talian. Langkah 2: Jika

Gunakan fungsi File.isDirectory() Java untuk menentukan sama ada fail wujud dan daripada jenis direktori Dalam pengaturcaraan Java, anda sering menghadapi situasi di mana anda perlu menentukan sama ada fail wujud dan jenis direktori. Java menyediakan kelas Fail untuk mengendalikan fail dan direktori Fungsi isDirectory() boleh membantu kami menentukan sama ada fail ialah jenis direktori. Fungsi File.isDirectory() ialah kaedah dalam kelas Fail Fungsinya adalah untuk menentukan Fail semasa

Pengenalan fungsi PHP—namakan semula(): Menamakan semula fail atau direktori Pengenalan: Dalam PHP, fungsi nama semula() digunakan untuk menamakan semula fail atau direktori. Ia menyediakan cara mudah untuk menukar nama fail atau direktori. Sama ada fail tunggal atau keseluruhan direktori, anda boleh menggunakan fungsi ini untuk melakukan operasi nama semula. Proses penamaan semula boleh dicapai dengan mudah dengan menyatakan nama fail sumber atau direktori dan nama sasaran. Sintaks: boolrename(string$source,str

Fungsi glob() dalam PHP digunakan untuk mencari fail atau direktori dan merupakan fungsi operasi fail yang berkuasa. Ia boleh mengembalikan laluan fail atau direktori berdasarkan padanan corak yang ditentukan. Sintaks fungsi glob() adalah seperti berikut: glob(corak, bendera) dengan corak mewakili rentetan corak yang akan dipadankan, yang boleh menjadi ungkapan kad bebas, seperti *.txt (fail yang sepadan berakhir dengan .txt), atau laluan Fail tertentu. flags ialah parameter pilihan yang digunakan untuk mengawal fungsi

Setiap tahun sebelum Apple mengeluarkan versi utama baharu iOS dan macOS, pengguna boleh memuat turun versi beta beberapa bulan lebih awal untuk mengalaminya terlebih dahulu. Memandangkan perisian ini digunakan oleh orang awam dan pembangun, Apple telah melancarkan versi pembangun dan awam, yang merupakan versi beta awam bagi versi beta pembangun, untuk kedua-duanya. Apakah perbezaan antara versi pembangun dan versi awam iOS? Secara literal, versi pembangun ialah versi ujian pembangun dan versi awam ialah versi ujian awam. Versi pembangun dan versi awam menyasarkan khalayak yang berbeza. Versi pembangun digunakan oleh Apple untuk ujian oleh pembangun Anda memerlukan akaun pembangun Apple untuk memuat turun dan meningkatkannya.

Versi mudah alih Aplikasi Pembacaan WeChat ialah perisian membaca yang sangat baik Perisian ini menyediakan banyak buku dan karya Anda boleh membacanya pada bila-bila masa, di mana-mana sahaja dengan carian satu klik dan membacanya secara rasmi dan jenis yang berbeza buku tersusun rapi dan nikmati suasana bacaan yang selesa dan santai. Tukar mod bacaan senario yang berbeza, kemas kini bab buku terkini secara berterusan setiap hari, sokong log masuk dalam talian daripada berbilang peranti dan muat turun kelompok ke rak buku Anda boleh membacanya dengan atau tanpa Internet, supaya semua orang boleh menemui lebih banyak pengetahuan daripadanya . Sekarang editor memperincikannya dalam talian Promosikan kaedah melihat katalog untuk rakan membaca WeChat. 1. Buka buku yang anda ingin lihat katalog dan klik di bahagian tengah buku. 2. Klik ikon tiga baris di sudut kiri bawah. 3. Dalam tetingkap pop timbul, lihat katalog buku

Gunakan fungsi path/filepath.Split untuk membahagikan laluan kepada dua bahagian: direktori dan nama fail Apabila membangunkan program atau memproses fail, selalunya perlu untuk membahagikan laluan kepada dua bahagian: direktori dan nama fail. Dalam bahasa Go, anda boleh menggunakan fungsi Split dalam pakej laluan/fail untuk mencapai fungsi ini. Artikel ini akan memperkenalkan penggunaan fungsi Split dan memberikan contoh kod. Fungsi Split ditakrifkan seperti berikut: funcSplit(pathstring)(di

Pilih gaya katalog dalam Word, dan ia akan dijana secara automatik selepas operasi selesai. Analisis 1. Pergi ke Word pada komputer anda dan klik untuk mengimport. 2Selepas memasukkan, klik pada direktori fail. 3 Kemudian pilih gaya direktori. 4. Selepas operasi selesai, anda boleh melihat bahawa direktori fail dijana secara automatik. Tambahan: Jadual kandungan artikel ringkasan/nota dijana secara automatik, termasuk tajuk peringkat pertama, tajuk peringkat kedua dan tajuk peringkat ketiga, biasanya tidak lebih daripada tajuk peringkat ketiga.
