Rumah > pembangunan bahagian belakang > tutorial php > Rangka Kerja Lithium: Bermula

Rangka Kerja Lithium: Bermula

Christopher Nolan
Lepaskan: 2025-02-21 10:46:10
asal
728 orang telah melayarinya

Lithium Framework: Getting Started

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 adalah kerangka PHP yang mudah dan cekap yang sesuai untuk Php 5.3 dan ke atas. Ia direka untuk menyediakan satu set alat yang baik untuk melancarkan aplikasi web anda tanpa terlalu ketat.

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;
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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 {

}
Salin selepas log masuk
Salin selepas log masuk

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.

Walau bagaimanapun, seperti yang saya nyatakan, ini adalah tingkah laku lalai. Untuk kawalan lebih lanjut, anda boleh menentukan laluan anda sendiri di fail /p /config/routes.php. Saya tidak akan masuk ke dalam butiran, tetapi anda boleh mendapatkan lebih banyak maklumat di halaman dokumentasi yang sepadan.

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);

}
Salin selepas log masuk
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;
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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 {

}
Salin selepas log masuk
Salin selepas log masuk

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;
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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);
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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!

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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan