MVC Zend framework ile ilgili olarak, nedir?

4 Cevap php

Ben Zend Framework öğrenme yaşıyorum ve bir MVC modeli kullanır.

Ben hala MVC Model, View, Controller ne başımı yok.

Ve program akış ne gibi görünecektir üç farklı alanları nelerdir?

4 Cevap

M - Modeller - sık sık karışıklık büyük kaynağıdır. Bunlar 'ağır kaldırma' do uygulamanın parçaları vardır - onlar, veritabanı erişimi ele karmaşık uygulamaya özgü mantığını gerçekleştirmek ve uygulama 'yapar' ne çoğu sorumludur. Görüntüleme ve Kontrolörleri aksine, Zend Framework Modeller için bir temel sınıf yok - onlar ne de gerçek bir tutarlılık yok çünkü bu. (Ruby on Rails gibi) bazı çerçeveler Modeli için bir üs olarak veritabanı sarıcı çeşit sunmak için çalışıyorum, ama birçok durumda (3. taraf yem / API, statik dosyalar, kalıcı olmayan hesaplamalar, birden fazla tablo yayılan kavramlar vardır .. .) kendisi için bu, en iyi, yanıltıcı bir uygulamadır. Model hala programlamak ve çerçeve gerçekten sizi kurtaramaz zorunda konum uygulamanın bir parçasıdır.

V - Görüntüleme - Burada basit bileşenleridir. Bunlar basit bir PHP / HTML şablonları olmalıdır. Onlar daha sonra bir sayfa koymak görünümü nesneleri, diziler, dizeleri, vb verilen konum. Burada (eğer varsa) çok karmaşık mantık olmamalıdır - (tanımlı ise) bu üzerinde döngü, zebra şerit, bu tabloyu ve etajer bu görüntüler. Orada (böyle sihirli bir Zend_Form işler yardımcısı olarak) Görünümü Yapanlar ile oluyor bazı sihirli, ama bu genel sistem anlamak için önemli değil.

C - Kontrolörler - geniş anlamda, kontrolör, kullanıcı isteklerini alarak nesneleri Model onları dışı kalma ve İzlenme teslim edilmesi Modelleri hazırlamaktan sorumludur. Bu her şeyi bir arada tutan tutkal var. Zend_Controller_Front ve Zend_Controller_Action - Zend MVC kullanıyorsanız ediyorsanız, 2 kontrolör ile endişeliyiz.

(Olsun hangi için 'ücretsiz' sen Zend_Layout::startMVC() kullanırsanız) Zend_Controller_Front uygulamanız için tek bir giriş noktası - bu ham kullanıcı isteklerini işler ve aramak için bir Eylem içine URL'leri çevirir . Orada kimlik doğrulama ve erişim kısıtlamaları gibi şeyler işlemek için bu 'plug-in' için çeşitli yerler vardır, ancak, özünde sadece gelen istekleri yönlendiren ön kapıda 'trafik polisi' bulunuyor.

Aslında bir Eylem uygulama (, liste blog girişlerini giriş vurucular, bir pizza sipariş ...) bir şeyi temsil eder, ama aslında yapmak için doğrudan sorumlu değil - Zend_Controller_Action eylemler için temel sınıftır o. Eylem Kontrolörleri oldukça sıkıcı - aslında eylemi gerçekleştirmek ve görünüm içine sonuçları itmek için Model sınıfları birkaç yöntemleri çağırmak, formlar ve URL'ler dışında değerlerini çekin. Daha önce söylendiği gibi, onlar Modeller ve Görüntüleme arada tutan 'tutkal' demektir.

Eğer doğru çizgiler boyunca şeyleri bölme eğer görmek için bir kaba testi sitenize önemli bir değişiklik öngörülüyor etmektir. Görsel yeniden neredeyse tamamen İzlenme ele olacaktır. Tüm URL'leri Hareketli sizin Kontrolörleri değiştirmek istiyorsunuz. Bir GUI uygulaması için bir web uygulaması dönüştürürken görüş ve kontrolörleri yerini alacak, ama modeli hala çoğunlukla değişmemiş olacaktı. Eğer modelleri yeniden, yepyeni bir uygulama var.

MVC kavramının bir açıklama Stackoverflow üzerinde birçok soru vardır:

Kavramının çok iyi bir açıklama bulunabilir Wikipedia:

Model-view-controller (MVC) is an architectural pattern used in software engineering. Successful use of the pattern isolates business logic from user interface considerations, resulting in an application where it is easier to modify either the visual appearance of the application or the underlying business rules without affecting the other. In MVC, the model represents the information (the data) of the application; the view corresponds to elements of the user interface such as text, checkbox items, and so forth; and the controller manages the communication of data and the business rules used to manipulate the data to and from the model.

Ile ilgili olarak, Zend Framework,

Zend Framework, özellikle MVC tanıttı çok güzel, kendi Quick Start/Tutorial vardır.

Alıntı oradan:

So what exactly is this MVC pattern everyone keeps talking about, and why should you care? MVC is much more than just a three-letter acronym (TLA) that you can whip out anytime you want to sound smart; it has become something of a standard in the design of modern web applications. And for good reason. Most web application code falls under one of the following three categories: presentation, business logic, and data access. The MVC pattern models this separation of concerns well. The end result is that your presentation code can be consolidated in one part of your application with your business logic in another and your data access code in yet another. Many developers have found this well-defined separation indispensable for keeping their code organized, especially when more than one developer is working on the same application.

Mümkün olduğunca az kelime:

  • Model db
  • görünümü (sayfa) bakın ne
  • kontrol yapıştırıcı (lojik) bir

Sizin modeller veri içeren tabloları erisebilirsin; görüşleriniz içeriği görüntülemek için biliyorum; ve kontrolörler (Ben ne modeli kullanmalıyım? hangi görünümü göstermek için ne yapmalıyım?) birlikte tutkal.