MVC nedir?
Model-View-Control için MVC standartları. Uygulamayı üç ana bileşene ayıran mimari bir modeldir.
1. Model, iş mantığı ve veritabanı etkileşimleriyle ilgilenir
2. Denetleyici, model ve görünüm arasındaki etkinlikleri koordine eder
3. Veri sunumundan View sorumludur
Aşağıdakiler, MVC mimari modelinin avantajlarından bazılarıdır
- Gevşek kaplin - bileşenler mevcuttur ve birbirinden bağımsız olarak çalışır.
- Esneklik - tek tek bileşenlerde kolayca değişiklik yapılabilir
- Artan verimlilik - aynı anda birden fazla kişi proje üzerinde çalışabilir. Ön uç geliştiriciler görünümler ve sunum üzerinde çalışırken, arka uç geliştiriciler modellere odaklanabilir ve sistem gevşek bir şekilde bağlandığı için günün sonunda çalışır.
Bu eğitimde şunları öğreneceksiniz:
- MVC nedir?
- Modeli
- Kontrolör
- Görünüm
- MVC çerçeveleri nasıl çalışır?
- CodeIgniter Denetleyici
- CodeIgniter Modeli
Modeli
Model, veri kaynaklarıyla etkileşimden sorumludur. Bu genellikle bir veritabanıdır, ancak istenen verileri sağlayan bir hizmet de olabilir. Denetleyicinin aksine modellerde bulunan iş mantığına sahip olmak da yaygın bir uygulamadır. Bu uygulamaya genellikle şişman model sıska kontrolör denir.
Model genellikle verileri veritabanına yazar, verilerin düzenlenmesi, güncellenmesi ve silinmesi için bir mekanizma sağlar. Modern bir web uygulamasında modeller, veritabanıyla etkileşimi kolaylaştırmak için aktif kayıt gibi veri erişim tasarım modellerini kullanır.
Örneğin, CodeIgniter modellere yardımcı olmak için yerleşik bir kütüphane Active Record kullanırken Laravel gibi diğer çerçeveler veri erişimine yardımcı olan Eloquent Object Relational Mapper (ORM) kullanır.
Kontrolör
Denetleyici, kullanıcılardan gelen kaynak isteklerini dinler. Model ve görünüm arasında aracı görevi görür ve bazen bazı iş kurallarını da uygular. Denetleyicinin bir kullanıcıyı veritabanına kaydetme isteği aldığını varsayalım.
Kontrolör, gerekli tüm parametrelerin sunulduğundan emin olmak için gönderilenler üzerinde veri doğrulaması yapabilir. Eksik bir şey varsa, kullanıcı uygun hata mesajıyla birlikte kayıt sayfasına yönlendirilir. Kontrolör ayrıca, gönderilen e-posta adresinin zaten mevcut olup olmadığını kontrol ederek modelden daha fazla doğrulama gerçekleştirmesini isteyebilir. Tüm doğrulama kuralları geçerse, denetleyici verileri işlem için modele gönderir ve yanıtı bekler.
Model bilgileri işledikten ve olumlu bir yanıt verdikten sonra, denetleyici uygun görünümü yükler ve modelden döndürülen verileri parametre olarak geçirir.
Görünüm
Görünüm, son kullanıcıya sunulan verilerle ilgilenir. Web uygulamalarında, görünümler genellikle HTML, CSS ve isteğe bağlı olarak JavaScript içerir. Görünümler minimum programlama kodunu içerir. Görünümlerde bulunan kod, genellikle verileri temizlemek veya kayıtları düzenlemek için bağlantılar oluşturmak için modelden veya yardımcı işlevden parametreler olarak alınan veri koleksiyonları arasında döngü yapmak için kullanılır. Çoğu modern web uygulaması genellikle kendi sözdizimini tanımlayan, daha çok sözde kod gibi olan ve tasarımcılar tarafından kolayca anlaşılabilen şablon oluşturma motorları kullanır. CodeIgniter ile çalışırken, kısa PHP etiketleri ve kontrol yapıları kullanmak yaygın bir uygulamadır. CodeIgniter'da bir şey görüntülemek için aşağıdaki kod kullanılabilir
Aksine
Kontrol yapıları genellikle şu şekilde yazılır
Yukarıdaki örnekten de görebileceğiniz gibi, görünüm her şeyi saf PHP kodu içine almak yerine PHP ve HTML kombinasyonunu kullanacaktır.
MVC çerçeveleri nasıl çalışır?
Aşağıdaki görüntü MVC çerçevesinin çalışmalarını gösterir
Bir denetleyici, kullanıcıdan isteği alır, gerekirse veritabanı modeliyle etkileşime girer, ardından sonucu tarayıcının insan tarafından okunabilir bir biçime yorumladığı ve kullanıcıya görüntülediği HTML kodu biçiminde tarayıcıya geri döndürür.
CodeIgniter Denetleyici
Şimdi yukarıdaki URL'yi web tarayıcısına yüklediğimizde ne olduğunu inceleyelim.
Welcome.php controller bulunan application / controllers dosyasını açın
Aşağıdaki kodu görebilmelisiniz
load->view('welcome_message');}}
İŞTE,
- tanımlı ('BASEPATH') VEYA çıkış ('Doğrudan komut dosyası erişimine izin verilmez'); istek index.php aracılığıyla gelmediyse denetleyiciye doğrudan erişimi engeller. bu güvenlik amaçlıdır.
- Sınıf Welcome, CI_Controller'ı genişletir {…}, Welcome denetleyici sınıfını tanımlar ve CI_Controller üst sınıfını genişletir
- public function index () {…}, http: // localhost: 3000 URL'sine yanıt veren dizin yöntemini tanımlar
- $ this-> load-> view ('welcome_message'); application / views dizininde bulunan welcome_message görünümünü yükler
Şimdi indeks yöntemini aşağıdaki gibi güncelleyeceğiz
public function index(){$this->load->model('customers_model');$data['customer'] = $this->customers_model->get_customer(3);$this->load->view('welcome_message',$data);}
İŞTE,
- $ this-> load-> model ('customers_model'); müşteri modelini yükler.
- $ veri ['müşteri'] = $ this-> customers_model-> get_customer (3); customers_model'in get_customer yöntemini çağırır ve parametre 3'e geçer. Bu örnekte, değeri sabit kodladık, ancak gerçek hayattaki uygulamalarda bu, URI'den bir parametre olacaktır.
- $ this-> load-> view ('welcome_message', $ data); welcome_message görünümünü yükler ve $ data değişkenini görünüme aktarır
CodeIgniter Modeli
Şimdi yukarıdaki kodda referans verdiğimiz görünümü oluşturalım. Basit olması için, modelimiz veri tabanı ile etkileşime girmeyecek, ancak statik bir müşteri kaydı döndürecektir. Sonraki eğitimlerde veritabanları ile çalışacağız.
Uygulama / modellerde bir müşteri_model.php dosyası oluşturun
Aşağıdaki kodu ekleyin
İŞTE,
- class customers_model extends CI_Model {…}, CI_Model'i genişleten Customer_model modelini tanımlar.
- public function get_customer ($ id) {…} bir müşteri kimliğine göre müşteri alma yöntemini tanımlar
- $ data […] hayali müşterimizin statik değerlerini tanımlar. Bu, veritabanından döndürülen bir satır olmalıdır.
- $ veri döndür; müşteri verilerini döndürür.
Yani modelimiz için. Şimdi welcome_message görünümünü değiştirelim
Şu konumda bulunan welcome_message.php dosyasını açın
application/views/welcome_message.php
Kodu aşağıdaki ile değiştirin
CodeIgniter MVC Basics Customer Details Card
Customer ID :
First Name :
Last Name :
Address :
Değişiklikleri kaydedin
Aşağıdaki URL'yi web tarayıcısına yükleyin
http: // localhost: 3000 /
Aşağıdaki resimde gösterildiği gibi müşteri kartını görebilmelisiniz
Özet
- MVC, uygulamayı üç ana bileşene ayıran mimari bir modeldir
- Model, veri kaynaklarıyla etkileşimden sorumludur
- Denetleyici, kullanıcılardan gelen kaynak isteklerini dinler
- Web uygulamalarında, görünümler genellikle HTML, CSS ve isteğe bağlı olarak JavaScript içerir
- Bir denetleyici, kullanıcıdan isteği alır, gerekirse veritabanı modeliyle etkileşim kurar ve ardından sonucu tarayıcıya HTML kodu biçiminde geri döndürür.