Versi 2.0.2-2024-12-13
Kerangka kerja Web-Application sederhana yang mengimplementasikan pola arsitektur Model-View-Controller (MVC).
composer require "simplesamlphp/simplesamlphp:^2.2" )UMVC mendukung modul, lihat konfigurasi/komponen.
Kerangka kerja mendukung pengujian fungsional dengan plugin kerangka kerja. Codeception yang dipasang secara global harus kompatibel dengan yang diperlukan (saat ini v3.1.2)
UMVC mendukung CLI. Anda dapat membuat perintah Anda sendiri. Perintah bawaan adalah:
Jalankan perintah sebagai php app $command $action $parameters
Kerangka kerja dapat dimasukkan ke dalam proyek Anda dengan komposer. Jalankan composer require uhi67/umvc:dev-master . Proyek baru yang kosong dapat dibuat menggunakan composer create-project --prefer-dist uhi67/umvc-app name . Ini akan memberi Anda aplikasi kosong baru menggunakan Kerangka UMVC ke dalam direktori bernama. Pilih nama apa pun yang Anda sukai.
Peringatan: Bagian ini sedang dibangun. Pelajari lebih lanjut tentang kelas yang disebutkan dalam docblock definisi kelas.
composer.json dari aplikasi Anda, dan sertakan uh67/umvc , misalnya composer init --name myname/myapp --require uhi67/umvc:* .composer update .vendor/uh67/umvc/app ke root aplikasi Anda. Ini adalah peluncur perintah CLI.vendor/uh67/umvc/www/index.php dan .htaccess ke direktori www aplikasi Anda. Ini adalah router antarmuka web.config/config.php , lihat template di vendor/uh67/umvc/config/config-template.php .runtime yang dapat ditulis oleh server web untuk menempatkan file sementara.www/assets yang dapat ditulis oleh server web untuk menempatkan file aset yang di -cache dari berbagai komponen. controllers , menggunakan appcontrollers namespace, dan turunkan dari uhi67umvcController .views , dalam format PHTML sederhana, dan aturnya sesuai dengan views/controller/action.php struktur.models . Model database adalah uhi67umvcModel , model basis data adalah uhi67umvcBaseModel . migrations .views/layouts . Tampilan dapat memanggil tampilan parsial lainnya.commands , berasal dari uhi67umvcCommand class. Ada beberapa perintah bawaan dalam kerangka kerja. Perintah php app mencantumkan semua perintah yang tersedia, baik yang bawaan maupun kustom.messges/la.php di mana "la" adalah bahasa yang ingin Anda terjemahkan. Semua komponen, sebagian besar kelas UMVC, termasuk kelas aplikasi utama itu sendiri, adalah uhi67umvcComponent . Component mengimplementasikan fitur properti : Magic Getter dan Setter menggunakan metode GetProperty dan SetProperty. Component dapat dikonfigurasi : Konstruktor menerima array konfigurasi yang berisi nilai untuk properti publik.
MySqlConnection - untuk terhubung ke database. Termasuk SQL Query Builder. Saat ini satu -satunya implementasi Connection .FileCache - Satu -satunya implementasi CacheInterface .SamlAuth - Satu -satunya implementasi untuk AuthManager .L10n -Lokalisasi sederhana, auto-termasuk default, hanya menerjemahkan pesan UMVC.L10nFile -Lokalisasi berbasis file untuk menerjemahkan pesan aplikasi Anda. Form -Widget dengan tampilan bawaan untuk menampilkan dan memproses formulir HTML menggunakan model Anda.Grid (widget, tetapi tampilan bawaan masih hilang)-untuk menampilkan daftar model yang difilter dan difilter.Query - mewakili kueri SQL yang parametri dan fleksibel dalam struktur PHP. Perintah SQL dapat dibangun darinya.Request - mewakili permintaan HTTP, dapat digunakan untuk mengambil dan memposting parameter.Session - mewakili sesi PHP saat ini, dapat digunakan untuk mendapatkan dan mengatur variabel. Skrip entri tunggal untuk aplikasi web adalah www/index.php . Masing -masing, skrip entri tunggal untuk aplikasi CLI adalah file app . Keduanya harus disalin ke direktori aplikasi Anda dari vendor/uhi67/umvc/ direktori.
Aturan www/.htaccess mengarahkan semua permintaan yang tidak ditemukan ke www/index.php . Namun, aset statis dilayani langsung dari direktori WWW. Pelajari lebih lanjut tentang melayani aset perpustakaan nanti.
index.php menginisialisasi autoloader, memuat konfigurasi utama, membuat objek utama (kelas yang ditentukan dalam konfigurasi, biasanya uhi67/umvc/App atau keturunannya). Konfigurasi utama mengikuti aturan Component yang dapat dikonfigurasi.
Semua URL dibentuk sebagai https: // myapp/acontroller/anaction diproses dengan cara berikut:
uhi67/umvc/App Parses permintaan, menghitung kelas pengontrol aktual (berasal dari uhi67/umvc/Controller ) untuk digunakan, membuat pengontrol dan menjalankan metode tindakan yang diminta. Seperti pada contoh di atas, acontroller mengacu pada kelas pengontrol Anda di direktori controllers Anda sebagai acontrollercontroller , dan anaksi mengacu pada metode tindakan (sebagai aksi ActionAntion ).
Jika nama tindakan hilang dari URL, actionDefault akan dijalankan. Jika nama pengontrol juga hilang, MainController yang dikonfigurasi akan digunakan. Dimungkinkan juga untuk membuat URL dengan nama tindakan pengontrol default tanpa menentukan nama pengontrol - satu -satunya batasan Anda tidak dapat memiliki pengontrol dengan nama yang sama seperti tindakan ini.
Perintah al cli dibentuk sebagai php app acontroller/anaction diproses dengan cara berikut:
uhi67/umvc/App P dari permintaan, menghitung kelas pengontrol yang sebenarnya (berasal dari uhi67/umvc/Command ) untuk digunakan, membuat pengontrol dan menjalankan metode tindakan yang diminta. Seperti pada contoh di atas, acontroller mengacu pada kelas pengontrol Anda di direktori commands Anda sebagai acontrollercontroller , dan anaksi mengacu pada metode tindakan (sebagai aksi ActionAntion ). Perintah bawaan dapat dijalankan dengan cara yang sama. Perintah dengan nama yang sama dalam aplikasi kami mengesampingkan perintah bawaan.
Bagian dari permintaan URL saat ini dapat diakses sebagai:
Untuk membuat URL baru menggunakan pengontrol dan nama tindakan, dan parameter Optioanl Qurey, gunakan salah satu dari yang berikut:
Dalam file tampilan Anda, Anda dapat merujuk aset statis Anda yang terletak di bawah direktori www dengan cara statis, misalnya <link href="/assets/css/app.css" rel="stylesheet"> . Sebaliknya, jika Anda ingin merujuk ke file aset yang terletak di suatu tempat di perpustakaan vendor yang dibuat komposer, Anda dapat menggunakannya dengan cara ini:
<script src="<?= $this->linkAssetFile('npm-asset/bootstrap/dist', 'js/bootstrap.bundle.min.js') ?>"></script> Fungsi linkAssetFile menyalin semua file dari direktori dalam argumen pertama ke direktori cache aset di bawah www , dan membuat URL yang valid ke file int argumen kedua. Catatan: Argumen pertama mengidentifikasi paket aset. Hanya panggilan pertama untuk paket apa pun yang menyalin file. Semua panggilan berikutnya ke paket yang sama hanya menghasilkan tautan untuk file.
Cache aset dikosongkan oleh perintah composer install . Cache aset selalu www/asset/cache dan tidak dapat dikonfigurasi.
...
Repositori ini berisi aplikasi uji bawaan untuk uji unit codeception internal. Satu -satunya tujuan aplikasi uji di direktori tests adalah untuk dapat menjalankan tes unit, dan bukan aplikasi sampel untuk memulai.
git clonecomposer updatetests/_data/test-config.php berdasarkan templateumvc-test sesuai dengan pengaturan database di tests/_data/test-config.phpphp vendor/bin/codecept run unit untuk tes unitLebih banyak tes unit datang ...
Lingkungan pengujian Dockerized bawaan dapat digunakan untuk menguji dengan versi PHP dan database yang berbeda.
Tangga:
tests/docker-compose.yml (buat klon file templat ini)tests/docker/Dockerfile (langkah instalasi ekstensi dapat berubah)tests/.envdocker compose up --build -d (dalam tests Dir)docker exec -it umvc-php-1 php vendor/bin/codecept run unit