PHP bir kontrol uygulamak için en iyi yolu nedir?

5 Cevap php

Yaptığım web sitelerinin son birkaç yılında, MVC tarzı denetleyici bir tür hayata sanırım.

I mod_rewrite index.php aracılığıyla her şeyi göndermek için kullanılır, bu yüzden url bir QueryString oldu.

O çalıştı, ama biraz hacky, ya da bir şeyler yapmanın sadece kabul yolu olup olmadığını merak ediyorum. Daha iyi bir yolu var mı? Ben bunu kendim yapmak öğrenmek istiyorum, bir çerçeve istemiyorum.

5 Cevap

Dünyada benim küçük çerçeve sahipsiniz.

<?php
$g=$_GET;$c=@$g['c']?$g['c']:'Home';
if(!@include"c/$c.php")die('fail');
$m=method_exists($c,$m=@$g['m'])?$m:'index';
$o=new$c();$o->$m($g);

Yani index.php gider ve kontrollerimiz. / C / blog.php içinde blog.php vardır.

class Blog {

    function index()
    {
        echo "Hello world";
    }

    function otherpage()
    {
        echo "ZOMG!";
    }

Ben bir tweet sığabilecek bir çerçeve yapmak istedim, bir şaka gibi, temel olarak yapılmıştır, ama temel mantık var ;-)

Tek bir giriş noktasından her şeyi Passing, örneğin index.php bu FrontController Pattern olduğu, MVC değildir. Bu olsa MVC ile iyi gider. Benim ilgili answer here bakın.

Bunun dışında, neden bunu öğrenmek için etrafında çerçeveler bazı kontrol değil. Bunları kullanmak zorunda anlamına gelmez, sadece kendi koduna bakmak ve kendi çerçevesi için adapte.

Ben böyle başarılı yoludur. Sonra, URL, örneğini denetleyici ve hangi dayalı çalıştırmak için yeni bir sevk sevk tablo oluşturdu.

Nasıl kendiniz yapmak öğrenme, ama yine de bir çerçeve kullanılması hakkında? Her iki şekilde de, Wordpress, Jommla gibi Symfony veya CMS uygulamaları gibi açık kaynak çerçevesinde bir göz atın! vb, ve onlar her şeyi yola mod_rewrite kullanmak olduğunu göreceksiniz.

Çoğu PHP çerçeveler aynı amacı gerçekleştirmek mi mod_rewrite'ı yararlanabilir ve bir segmente bir şekilde, index.php bastırmak ve adresler daha kolay hale getirmek için tek yoldur.

Ben doğru yolda olduğunu söyleyebilirim.

Eğer kullanılan bu yöntem FrontController Pattern denir, ve MVC deseni ile birlikte gitmek için, hem de bu çerçeveler tarafından kullanılır.

Bir öneri için bakım varsa, ben her site şablonlar gibi muhtemelen her sayfada kullanmak için gereken bazı temel veri yapıları vardır ve o zamandan beri, bir baz denetleyici uzanan, her isteği, her sayfa denetleyici geçmesine yapmak için tavsiye ederim oturum kontrolü.