PHP MVC çerçevesi nedir?
PHP MVC, uygulama verilerini ve iş mantığını (model) sunumdan (görünüm) ayıran bir uygulama tasarım modelidir. MVC, Model, View & Controller anlamına gelir.
Denetleyici, modeller ve görünümler arasında aracılık eder.
MVC tasarım modelini bir araba ve sürücü olarak düşünün.
Otomobilde, sürücünün (kontrolör) öndeki trafiği izlemek için kullandığı ön camlar (görünüm), ardından da ileriye baktığına bağlı olarak hız veya fren (model) vardır.
Neden PHP MVC Framework kullanmalı?
- PHP MVC Frameworks, karmaşık teknolojilerle çalışmayı basitleştirir;
- Tüm karmaşık uygulama ayrıntılarını gizlemek
- Uygulamalarımızı oluşturmak için kullanabileceğimiz standart yöntemler sağlamak.
- Artan geliştirici üretkenliği, bunun nedeni, veritabanına bağlanma, kullanıcı girdisinin sterilize edilmesi gibi faaliyetlerin temel uygulamasının zaten kısmen uygulanmış olmasıdır.
- Profesyonel kodlama standartlarına bağlılık
Bu eğitimde öğreneceksiniz-
- PHP MVC Tasarım Kalıbı
- PHP MVC çerçevesi türleri
- Kamuoyu yoklaması uygulamasını CodeIgniter'a taşıma
- Veritabanı yapılandırma ayarları
- Modelimizi Oluşturmak
- Görüşlerimizi Oluşturmak
- Uygulamamızı test ediyoruz
PHP MVC Tasarım Kalıbı
Şimdi MVC tasarım modelinin her bir bileşenini kısaca tartışalım.
Model - bu bölüm iş mantığı ve uygulama verileri ile ilgilidir. Veri doğrulamaları yapmak, verileri işlemek ve saklamak için kullanılabilir. Veriler;
- düz bir dosya
- veri tabanı
- XML belgesi
- Diğer geçerli veri kaynakları.
Kontrolör - bu kısım, kullanıcıların sunucudan kaynak taleplerini ele alan kısımdır.
Örnek olarak, kullanıcılar… /index.php?products=list URL'sini talep ettiğinde, denetleyici ürün verilerini almak için ürün modelini yükleyecek ve ardından sonuçları liste görünümünde çıkaracaktır.
Özetle, denetleyici, istenen kaynaklara bağlı olarak modelleri ve görünümleri birbirine bağlar.
Görünümler - bu bölüm verilerin kullanıcıya sunulmasıyla ilgilidir. Bu genellikle HTML sayfaları biçimindedir.
PHP MVC çerçevesi türleri
En iyi PHP çerçevesini seçmek zor bir iştir.
MVC'nin avantajlarından yararlanmak için kendi çerçevenizi yazmak zorunda değilsiniz.
MVC çerçevelerinin nasıl çalıştığını anlamak için yalnızca kendi MVC ile ilgili uygulama tasarımınızı oluşturmaya çalışmalısınız.
MVC çerçevelerinin çalışma şeklinden memnun olduğunuzda, olgun ve önceden test edilmiş çerçevelere geçmelisiniz.
Aşağıdaki tablo, bazı popüler php çerçevelerini ve her çerçevenin sunduğu özellikleri kısaca açıklamaktadır.
Çerçeve | Açıklama |
---|---|
CodeIgniter https://codeigniter.com/ | En popüler PHP MVC çerçevelerinden biridir. Hafiftir ve kısa bir öğrenme eğrisine sahiptir. Web sitelerini ve uygulamaları hızla oluşturmaya yardımcı olan zengin bir kitaplık grubuna sahiptir. Sınırlı OOP programlama bilgisine sahip kullanıcılar da kullanabilir. CodeIgniter destekli uygulamalar şunları içerir;
|
Kohana http://kohanaframework.org | Hiyerarşik Model Görüntüleme Denetleyicisi HMVC güvenli ve hafif bir çerçevedir. Uygulamaları hızla geliştirmek için zengin bir bileşen setine sahiptir. Kohana'yı kullanan şirketler arasında;
|
CakePHP www.cakephp.org | Ruby on raylar üzerine modellenmiştir. Yazılım tasarım örüntüleri, yapılandırma üzerinde kural, ActiveRecord vb. Gibi kavramlarla bilinir. CakePHP destekli uygulamalar şunları içerir;
|
www.framework.zend.com Zend | Güçlü bir çerçevedir;
|
Kamuoyu yoklaması uygulamasını CodeIgniter'a taşıma
Bu eğiticide, bir PHP anket uygulaması oluşturduk. Burada, bu kodu CodeIgniter'a taşıyacağız
- CodeIgniter'ın en son sürümünü web sitelerinden indirin.
- Sıkıştırılmış dosyanın içeriğini web sunucusu dizininizdeki geliştirme dizininize çıkarın. Bu derste klasör adı olarak ciopinionpoll kullanacağız.
- Http: // localhost / ciopinionpoll / URL'sine göz atın
Şimdi fikir anketi uygulamamızı CodeIgniter'a taşıyacağız. Uygulamamızın üç ana bileşene ayrıldığını hatırlayın;
- Ön denetleyici - bu, URL isteklerine yanıt veren ve istenen sayfayı döndüren bölümdür. Bu kod denetleyiciye girecek
- Model - bu, istenen verilere yanıt veren ve istenen verileri döndüren koddur. Bu kod modele girecek
- Görünümler - bu, verilerin biçimlendirilmesinden ve görüntülenmesinden sorumlu koddur. Bu kod görünüme girecek
- Ciopinionpoll klasörüne göz atın
- Application / config dizininde bulunan database.php dosyasını açın.
- Aşağıdaki kod satırlarını bulun
Veritabanı yapılandırma ayarları
- Kullanıcı adını root olarak ayarlayın
- Parolayı localhost kök parolanız olarak ayarlayın
- İdea_poll için veritabanı adı. Önceki derste oluşturulan veritabanını kullanacağımızı unutmayın.
- Değişiklikleri kaydedin ve dosyayı kapatın.
Modelimizi Oluşturmak
Daha sonra CI_Model'i genişletecek modelimizi oluşturacağız. CI_Model, CodeIgniter kitaplıklarının bir parçasıdır. Model application / models idea_poll_model.php içinde yer alacaktır.
load->database();}public function total_votes(){$query = $this->db->select('COUNT(choice) as choices_count')->get('js_libraries');return $query->row()->choices_count;}public function get_results(){$libraries = array("", "JQuery", "MooTools", "YUI Library", "Glow");$table_rows = '';for ($i = 1; $i < 5; $i++){$sql_stmt = "SELECT COUNT(choice) choices_count FROM js_libraries WHERE choice = $i;";$result = $model->select($sql_stmt); $table_rows .= "";}public function add_vote($choice){$ts = date("Y-m-d H:i:s"); $data = array('choice' => $choice, 'ts' => $ts); $this->db->insert('js_libraries', $data);}}?> " . $ libraries [$i] . " Got: " . $result[0] . " votes
İŞTE,
- "Class Opinion_poll_model, CI_Model'i genişletir…" CI_Model'i genişleten modelimizdir
- “… Parent :: __construct ();” CI_Model yapıcısını çağırır
- "$ This-> load-> database ();" veritabanı kitaplığını yükler, böylece uygulamamız veritabanıyla etkileşime girebilir.
- "$ This-> db->", CodeIgniter'ın aktif kaydıdır. Aktif kayıt hakkında daha fazla bilgi için bu bağlantıyı kontrol edin.
Denetleyicimizi Oluşturmak Şimdi denetleyiciyi oluşturalım. Application / controllers / welcome.php'de bulunan varsayılan CodeIgniter denetleyicisini kullanacağız. Kaynak kodlarını aşağıdaki kodla değiştirin.
load->model('opinion_poll_model');}public function index() {if ($this->input->post('submitbutton') && !$this->input->post('vote')) {echo "";}if ($this->input->post('vote')) {$this->opinion_poll_model->add_vote($this->input->post('vote'));$data['total_votes'] = $this->opinion_poll_model->total_votes();$data['rows'] = $this->opinion_poll_model->get_results();$this->load->view('results', $data);} else {$this->load->view('opinion_poll_form');}}}/* End of file welcome.php *//* Location: ./application/controllers/welcome.php */?>
İŞTE,
- "İf (! Defined ('BASEPATH')) exit ('Doğrudan komut dosyası erişimine izin verilmez');" kullanıcıların denetleyici sınıfına doğrudan erişmemesini sağlar
- "Hoş Geldiniz sınıfı, CI_Controller'ı genişletir…" denetleyicimiz CI_Controller sınıfını genişletir
- "Public function __construct ()", CI_Controller'ın sınıf yapıcı yöntemini çağırır ve Opinion_poll_model modelimizi yükler
- “Public function index ()…”, index.php ile eşleşen işlevdir. bir oylama gönderilip gönderilmediğini kontrol etmek için CodeIgniter'ın girdi sınıfını kullanır, onu veritabanına ekler ve ardından sonuçları görüntüler. Giriş sınıfının post dizisi boşsa, oylama sayfasını yükler.
- "$ This-> input-> post ('…')”, $ _POST genel değişkeninin içeriğini toplayan CodeIgniter girdi sınıfıdır.
- "$ This-> idea_poll_model-> add_vote ($ this-> input-> post ('oy')), oylamayı veritabanına eklemek için modelin add_vote yöntemini çağırır.
Görüşlerimizi Oluşturmak
Önceki örnekten, biri oylama, diğeri sonuçlar için olmak üzere iki HTML sayfamız olduğunu hatırlayın. Görünümlerimizi oluşturmak için aynı HTML kodunu minimum değişikliklerle kullanacağız. Application / views dizininde aşağıdaki dosyaları oluşturun
opinion_poll_form.phpJavaScript Libraries - Opinion Poll JavaScript Libraries - Opinion Poll
What is your favorite JavaScript Library?
Şimdi sonuç sayfası results.php'yi oluşturalım
JavaScript Libraries - Opinion Poll Results JavaScript Libraries - Opinion Poll Results
What is your favorite JavaScript Library?
people have thus far taken part in this poll:
Uygulamamızı test ediyoruz
Uygulamanızın kök dizininin ciopinion olduğunu varsayarak, http: // localhost / ciopionpoll / adresine gidin.
Tamam düğmesine tıklayın, aşağıdaki uyarı mesajını göreceksiniz
Favori adaya oy verin ve ardından Tamam'a tıklayın Aşağıdaki sonuç sayfasını göreceksiniz
Sonuç
CodeIgniter, uygulamaları geliştirmek için harcanan zamanı büyük ölçüde azaltabilen, öğrenmesi ve kullanması kolay bir PHP MVC çerçevesidir.
Özet
- Çerçeve, ortak görevlerin kısmi uygulanmasını sağlayan bir kitaplık kümesidir.
- PHP, bir dizi açık kaynak, olgun ve test edilmiş MVC çerçevesine sahiptir.
- İyi bir geliştirme yaklaşımı, verileri sunumdan ayırır ve bir uygulamaya tek giriş noktasının kullanılmasını teşvik eder.
- Uygulama tasarımının en iyi uygulamalarını takip eden geleneksel PHP uygulamaları, minimum değişiklikle MVC çerçevelerine taşınabilir.