Zend ve Eski Usul kodu Karıştırma

3 Cevap php

Neredeyse tüm arası sayfa iletişim globalleri ve seans ya da her ikisi ile yapılır - Biz onlar demode olacak gibi küresellerle kullanan bir çok eski eski kod tabanı var. Bu could son çare olarak değiştirilebilir ama ideal Dokunduğum her şey daha hata tanıtmak olabilir gibi bunun herhangi dokunmak istemiyorum:-p.

Neyse, biz zend tamamen yazılmıştır uygulamaya yeni bir "modül" içeren ve gerçekten güzel ve modüler konum. Amacım zend omurga ve zend içinde modül / denetleyici bir tür olarak çalıştırmak için eski eski kodu olarak çalışan almak için ve kontrolü vardır zamanlar sadece normalde yürütmek ve istediğini yapmak.

Ben 2 konular:

  • Ben Zend Ben eski URL (login.php, show.php, vb) kullanılarak ve belirli bir kontrolöre yürütülmesine geçmek olduğumu görmek lazım;

  • Ben başka bir işlev içinde bir uygulamayı gömme yaşıyorum ve bu globalleri gibi küresel kapsamda görünen değişkenlerin varsayılan behavuour tatili - onlar şimdi bu yöntemin sadece yerel değişkenler olduğunu ve böylece ilk belirlemeden görülemez, yani o onlar globals vardır.

Bu yapılabilir başka bir yolu varsa bunu duymak mutlu olurum:-p

Cheers,
Chris

3 Cevap

Ilk sayı için ben Zend_Router sınıfını kullanabilirsiniz düşünüyorum.

Ama ben sanmıyorum nevertheles noktasına birini odaklı bir nesne ZF kavramına bir usul uygulaması için iyi bir fikirdir.

Ben uygulamayı yeniden yazabilir veya sadece gevşek bileşenlerinin yanı ZF yaratıcıları tarafından tavsiye edilir bir şey olarak ayrı sınıflar kullanmak istiyorsunuz ya.

Eski codebases için benim önerim sizin APACHE rewrite rules kullanmaktır. Normalde zend framework çizgisinde yeniden var:

  <Location />
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -s [OR]
        RewriteCond %{REQUEST_FILENAME} -l [OR]
        RewriteCond %{REQUEST_FILENAME} -d
        RewriteRule ^.*$ - [NC,L]
        RewriteRule ^.*$ /index.php [NC,L]
    </Location>

Bunun yerine "ZendFramework.php" gibi, şu anda kullanılan bir şey değil "index.php" olarak değiştirin. Bu ZendFramework.php dosyaya normal bir içeriği (önyükleme vb APPLICATION_ENV, APPLICATION_PATH, tanımlayın.) Koyun.

Şimdi sunucu yine eskisi gibi tüm mevcut eski kod sunmak, ancak (örneğin / modül / denetleyici / eylem olarak) rota mevcut olmayan yollar Zend için olacaktır. Eğer yollarında bazı çarpışmalar olabilir sizin eski kod tabanına bağlı olarak, size modules / denetleyicileri / actoions ve özel yolları isim olarak o ile uğraşmak zorunda olacak. Zamanla ZendFramework modüller halinde eski kod taşıyabilirsiniz.

        RewriteRule ^.*$ /ZendFramework.php [NC,L]

Ben yol çok iddialı ediliyordu çıkıyor;

Ben yeni "modül" çoğunlukla sadece JavaScript ve biraz PHP kontrolör (CRUD) ZF bir kitle tarafından yedeklenen gerçekleşmiş ve gerçekten istediğim tüm noktasına JS ön uç oldu - Hiç kimse aslında arka uç nasıl uygulandığı umurunda .

Ben sadece JS ön uç nakli ve sadece daha önce olduğu gibi benzer arayüzler sağlamak ve şimdi Zend ve eski app bazı alternatif işlevsellik sadece kodu hakkında endişelenmenize gerek yok etmeye karar verdi.

Yay.

Bir fincan çay yaparken benim fincan şeker koyarken Garip ben bu fark; Bunun yerine (şeker kavanoz ve yeniden yazma) için (her yerde kod yani çok dökülüp) fincan üzerine kaşık hareketli fincan onları hem de hareket ve altından şeker kavanozu kaldırın - Eğer daha az ile aynı sonucu elde karışıklık, şeker JS ve Jar büyük ZF çerçeve oldu:-p