Rangka Kerja Lithium: Titik Utama
- Lithium adalah kerangka PHP yang fleksibel yang sesuai untuk Php 5.3 dan ke atas, yang menggunakan seni bina model-view-controller (MVC) untuk pembangunan aplikasi web.
- Pengawal mengendalikan permintaan yang diarahkan oleh sistem penghalaan aplikasi. Pandangan adalah lapisan persembahan yang memisahkan logik perniagaan dari persembahan dan membolehkan tematik kandungan yang mudah dipaparkan dalam penyemak imbas. Model ini mentakrifkan dan memproses kandungan dalam pangkalan data, membuat operasi CRUD (membuat, membaca, mengemas kini, memadam) mudah.
- Lithium menyokong pelbagai pangkalan data, termasuk MySQL, MongoDB, dan CouchDB. Rangka kerja ini juga mempunyai sistem penghalaan yang kuat yang membolehkan penciptaan URL mesra enjin ringkas dan carian.
- Konvensyen Lithium membuat permulaan mudah. Ia menyediakan kaedah CRUD terbina dalam, membolehkan penghalaan tersuai, menyokong pelbagai susun atur, dan juga menjadikan unsur-unsur yang lebih kecil dalam pandangan. Ciri -ciri ini menjadikan Lithium sebagai alat yang berkuasa untuk pembangunan aplikasi web.
Lithium menggunakan seni bina model-view-controller (MVC), yang akan dibincangkan dalam artikel ini. Saya akan menunjukkan kepada anda bagaimana ia berfungsi dan bagaimana untuk menentukan beberapa logik perniagaan dan perwakilan untuk aplikasi anda menggunakan rangka kerja ini. Kami akan melakukan langkah -langkah berikut:
kami akan menyediakan pengawal ke permintaan URL laluan. Pengawal ini akan menggunakan model data untuk mendapatkan dan memproses beberapa maklumat dari pangkalan data. Maklumat ini kemudiannya akan dipaparkan dalam penyemak imbas menggunakan paparan. Semua ini adalah proses MVC standard, tetapi ia adalah keseronokan untuk dilaksanakan dalam litium.
Saya menganggap anda mempunyai rangka kerja yang ditetapkan pada pelayan, sekurang -kurangnya anda dapat melihat halaman pelancaran aplikasi lalai apabila anda menavigasi ke URL. Di samping itu, anda memerlukan pangkalan data dengan beberapa maklumat. Saya akan menggunakan MySQL, tetapi Lithium menyokong banyak sistem storan lain seperti MongoDB atau CouchDB.
Jika anda ingin terus belajar, saya telah menyediakan repositori Git dan anda boleh mengkloninya. Cawangan induk mengandungi kerangka litium biasa, manakala cawangan MVC mengandungi kod untuk artikel ini. Jangan lupa untuk memulakan dan mengemas kini submodule lithium. Untuk menyambung ke pangkalan data anda, salin fail Connections_Default.php yang terletak di folder App/Config/Bootstrap dan namakan semula ke Connections.php. Kemudian tambahkan kelayakan anda ke fail.
mari kita mulakan.
data
Sebelum memasukkan kandungan MVC yang menarik, mari tambahkan jadual dalam pangkalan data dengan beberapa maklumat. Saya akan menggunakan data halaman maya, jadi jadual saya (halaman bernama) akan mengandungi lajur ID (int, auto-increment dan kunci utama), lajur tajuk (varchar 255), lajur kandungan (teks) dan lajur yang dibuat ( Int). Dalam jadual ini, saya mempunyai dua baris data sampel. Sekiranya anda ingin mengikuti langkah -langkah yang tepat, berikut adalah pernyataan penciptaan jadual:CREATE TABLE `pages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `content` text, `created` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Berikut adalah baris data maya saya:
INSERT INTO `pages` (`id`, `title`, `content`, `created`) VALUES (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745), (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
Sudah tentu, anda boleh menggunakan data lain.
c bermaksud pengawal
Pengawal mungkin merupakan bahagian paling penting dari mana -mana rangka kerja MVC. Tujuan mereka adalah untuk mengendalikan permintaan yang diarahkan oleh sistem penghalaan aplikasi.
Jika anda melihat aplikasi/ pengawal/ folder aplikasinya, anda akan mendapati bahawa ini adalah di mana kita perlu meletakkan pengawal. Mari buat fail baru di sana yang dipanggil siteController.php (setiap kelas pengawal berada dalam failnya sendiri) dan tampal perisytiharan kelas berikut untuk memulakan:
<?php namespace app\controllers; class SiteController extends \lithium\action\Controller { }
Seperti yang anda lihat, kami melanjutkan kelas pengawal asas lithium ke kelas kami sendiri yang dipanggil SiteController. Dalam kelas ini, anda boleh membuat kaedah yang melaksanakan logik yang diperlukan apabila meminta dari URL. Kami akan melihat bagaimana ia sebenarnya berlaku kemudian, tetapi pertama, mari kita faham bagaimana routing berfungsi.
Secara lalai, apabila membina URL, kami menggunakan parameter yang memetakan ke nama kelas pengawal (dalam tapak kes ini), kaedah, dan parameter. Jika nama kaedah tidak diluluskan, litium akan menganggap kaedah yang dinamakan indeks () sendiri. Jadi jika anda menavigasi ke http://example.com/site/, litium akan mencari kaedah ini dan memanggilnya. Sekarang katakan kita mempunyai kaedah yang dipanggil View () yang mengambil parameter ($ id). URL yang memanggil kaedah pengawal adalah http://example.com/site/view/1, di mana pandangan adalah nama kaedah dan 1 adalah parameter yang diserahkan kepada fungsi. Jika kaedah mendapat lebih banyak parameter, anda hanya memisahkannya dengan slashes (/) dalam URL.
Sekarang mari kita teruskan dan buat kaedah () kaedah yang akan bertanggungjawab untuk memaparkan halaman individu dari pangkalan data maya saya:
public function page() { // 模拟页面信息。 $title = 'My awesome page title'; $content = 'My awesome page content. Yes indeed.'; $created = '10 April 2014'; // 准备页面信息以传递给视图。 $data = array( 'title' => $title, 'content' => $content, 'created' => $created, ); // 将数据传递给视图。 $this->set($data); }di atas, kami mensimulasikan maklumat halaman pangkalan data dan simpan dalam array. Kami kemudian lulus array ini ke kaedah pengawal () pengawal (yang kami warisi) dan kemudian hantar ke pandangan. Sebagai alternatif, kita boleh mengembalikan array data $, bukannya menggunakan kaedah set (). Tetapi dalam kedua -dua kes, kunci array mewakili nama -nama berubah -ubah, yang kemudiannya dapat diakses dari fail paparan. Mari lihat bagaimana ia berfungsi.
(kandungan berikut adalah serupa dengan teks asal, tetapi pernyataan telah diselaraskan dan ditulis semula, mengekalkan niat asal, dan mengelakkan blok kod pendua)
V bermaksud Lihat
Lihat adalah lapisan persembahan rangka kerja MVC. Mereka digunakan untuk memisahkan logik perniagaan aplikasi dari perwakilan dan membolehkan tematik kandungan yang mudah dipaparkan dalam penyemak imbas.Mari buat pandangan untuk memaparkan maklumat halaman kami. Dalam apl/ paparan/ folder, anda perlu membuat folder lain yang dinamakan selepas kelas pengawal yang menggunakannya (dalam tapak kes ini). Dalam folder ini, anda perlu membuat fail yang dinamakan selepas kaedah itu sendiri, dengan sambungan .html.php dilampirkan. Ini adalah pandangan lithium konvensyen, yang membolehkan kita dengan mudah menyambungkannya ke pengawal.
Jadi untuk contoh halaman kami, fail baru akan terletak di apl/paparan/tapak/page.html.php.
Dalam fail ini, tampal yang berikut:
CREATE TABLE `pages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `content` text, `created` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
Seperti yang anda mungkin dapati, berikut adalah beberapa tag asas di mana kami akan mencetak pembolehubah yang dinamakan untuk lulus kekunci array dari pengawal. Lithium menggunakan sintaks ini untuk mencetak pembolehubah, kerana ia juga menjalankannya melalui fungsi $ H (), yang bertanggungjawab untuk membersihkan HTML. Tetapi ini hanya terpakai untuk mencetak pembolehubah, bukan sifat $ objek ini.
Untuk menguji apa yang telah kami lakukan setakat ini, navigasi ke http://example.com/site/page dan anda harus melihat halaman yang bagus yang menunjukkan maklumat simulasi. Anda juga akan melihat bahawa pandangan mudah kami diberikan dalam susun atur yang lebih kompleks (susun atur lalai yang disertakan dengan rangka kerja).
Layouts dalam litium digunakan untuk membungkus kandungan menggunakan tag yang biasa digunakan seperti tajuk dan footer. Mereka terletak di folder App/Layouts di mana mereka memberikan pandangan menggunakan $ this- & gt; kandungan (). Pandangan kami diberikan secara lalai dalam susun atur lalai.html.php, tetapi anda boleh menentukan susun atur lain yang anda mahukan. Anda boleh melakukan ini dari pengawal yang menjadikan pandangan, sama ada sebagai atribut kelas yang digunakan untuk semua kaedah pengawal itu, atau dalam kaedah itu sendiri, seperti:
INSERT INTO `pages` (`id`, `title`, `content`, `created`) VALUES (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745), (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
Kami akan berpegang pada susun atur lalai kerana ia kelihatan baik untuk tujuan demo kami.
M bermaksud Model
Sekarang bahawa logik permintaan dan perwakilan telah diproses, sudah tiba masanya untuk menggantikan data halaman simulasi dengan kandungan pangkalan data maya kami. Kami akan menggunakan model untuk abstrak dan mudah mengakses maklumat ini.
Kelas model adalah bahagian yang sangat penting dari rangka kerja MVC kerana mereka menentukan dan memproses kandungan dalam pangkalan data. Mereka juga membolehkan aplikasi dengan mudah melaksanakan operasi CRUD (membuat, membaca, mengemas kini, memadam) pada data ini. Mari lihat bagaimana mereka bekerja di litium.
Perkara pertama yang perlu anda lakukan ialah membuat fail kelas yang dipanggil Pages.php dalam folder App/Model dan tampal yang berikut:
<?php namespace app\controllers; class SiteController extends \lithium\action\Controller { }
kami hanya memperluaskan kelas model asas dan menggunakan semua kaedahnya. Nama kelas model kami mesti sepadan dengan jadual pangkalan data yang mengandungi rekod yang berkaitan. Jadi jika anda bukan halaman, pastikan anda menyesuaikan dengan sewajarnya, kerana litium secara automatik akan mendapat penamaan ini untuk mempermudahkan kerja kami.
Seterusnya, kita perlu memasukkan fail ini dalam fail kelas pengawal kami, jadi sila tampal berikut di bawah perisytiharan ruang nama:
CREATE TABLE `pages` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) DEFAULT NULL, `content` text, `created` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
yang seterusnya adalah untuk memadam kandungan mock dalam kaedah () dan pastikan fungsi ini melepasi parameter $ ID supaya kita tahu halaman mana yang perlu kita ambil. Tugas mudah kami yang tersisa adalah untuk menanyakan rekod halaman dan lulus hasilnya ke paparan. Oleh itu, kaedah halaman yang diubahsuai () akan kelihatan seperti ini:
INSERT INTO `pages` (`id`, `title`, `content`, `created`) VALUES (1, 'My awesome page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158745), (2, 'Some other page title', 'Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.', 1397158768);
Kami menggunakan kaedah pertama () kelas induk model untuk bertanya menggunakan syarat. Hasilnya adalah objek yang kami gunakan kaedah () kaedah untuk mendapatkan data rekod. Data ini mengambil array dengan nama lajur jadual sebagai kunci. Selebihnya adalah sama seperti sebelum ini, kecuali bahawa kita memformat medan yang dicipta menggunakan fungsi tarikh PHP () kerana apa yang kita dapat dari pangkalan data adalah timestamp Unix. Itu sahaja.
Jika kita menavigasi ke http: contoh.com/site/page/1, kita harus melihat halaman dengan ID 1. Jika kita menukar parameter URL terakhir kepada 2, halaman harus memuat rekod kedua. Rapi.
Kesimpulan
Dalam tutorial ini, kita melihat betapa mudahnya untuk memahami dan menggunakan rangka kerja litium MVC. Kami belajar bagaimana untuk menentukan pengawal, pandangan, dan model, dan cara menggunakannya bersama -sama untuk membuat aliran aplikasi yang kemas dan berasingan. Kami juga melihat betapa bergunanya perjanjian lithium bagi kami untuk memulakan. Walaupun kami tidak menyedarinya, kami abstrak kandungan pangkalan data kami dan mendedahkannya untuk akses mudah.
Saya harap anda telah belajar sesuatu dan ingin tahu tentang menyelidiki lebih mendalam ke dalam ciri -ciri berkuasa lain yang ditawarkan litium. Apakah beberapa kaedah CRUD terbina dalam? Bagaimana untuk mengembangkannya? Bagaimana untuk menentukan laluan tersuai anda sendiri? Bagaimana cara menggunakan pelbagai susun atur untuk menjadikan unsur -unsur yang lebih kecil walaupun dilihat? Ini adalah ciri -ciri yang kuat Lithium yang ditawarkan untuk aplikasi web kami dan patut dicuba.
Adakah saya membangkitkan rasa ingin tahu anda? Ingin mengetahui lebih lanjut mengenai rangka kerja yang sangat baik ini?
(bahagian FAQ adalah sama dengan teks asal, tiada pengubahsuaian diperlukan)
Atas ialah kandungan terperinci Rangka Kerja Lithium: Bermula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Laravel memudahkan mengendalikan data sesi sementara menggunakan kaedah flash intuitifnya. Ini sesuai untuk memaparkan mesej ringkas, makluman, atau pemberitahuan dalam permohonan anda. Data hanya berterusan untuk permintaan seterusnya secara lalai: $ permintaan-

Pelanjutan URL Pelanggan PHP (CURL) adalah alat yang berkuasa untuk pemaju, membolehkan interaksi lancar dengan pelayan jauh dan API rehat. Dengan memanfaatkan libcurl, perpustakaan pemindahan fail multi-protokol yang dihormati, php curl memudahkan execu yang cekap

Laravel menyediakan sintaks simulasi respons HTTP ringkas, memudahkan ujian interaksi HTTP. Pendekatan ini dengan ketara mengurangkan redundansi kod semasa membuat simulasi ujian anda lebih intuitif. Pelaksanaan asas menyediakan pelbagai jenis pintasan jenis tindak balas: Gunakan Illuminate \ Support \ Facades \ http; Http :: palsu ([ 'Google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

Pembalakan PHP adalah penting untuk memantau dan menyahpepijat aplikasi web, serta menangkap peristiwa kritikal, kesilapan, dan tingkah laku runtime. Ia memberikan pandangan yang berharga dalam prestasi sistem, membantu mengenal pasti isu -isu, dan menyokong penyelesaian masalah yang lebih cepat

Adakah anda ingin memberikan penyelesaian segera, segera kepada masalah yang paling mendesak pelanggan anda? Sembang langsung membolehkan anda mempunyai perbualan masa nyata dengan pelanggan dan menyelesaikan masalah mereka dengan serta-merta. Ia membolehkan anda memberikan perkhidmatan yang lebih pantas kepada adat anda

Artikel membincangkan pengikatan statik lewat (LSB) dalam PHP, yang diperkenalkan dalam Php 5.3, yang membolehkan resolusi runtime kaedah statik memerlukan lebih banyak warisan yang fleksibel. Isu: LSB vs polimorfisme tradisional; Aplikasi Praktikal LSB dan Potensi Perfo

Artikel ini membincangkan menambah fungsi khusus kepada kerangka kerja, memberi tumpuan kepada pemahaman seni bina, mengenal pasti titik lanjutan, dan amalan terbaik untuk integrasi dan debugging.

Alipay Php ...


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

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),