Önemli! WooCommerce şablon dosyalarında değişiklik yapma. Php projelerini desteklemek için ob_start kullanma Bir erkeğin üye listesine ihtiyacı olan şey php start

  • 03.11.2019

(PHP 4, PHP 5, PHP 7)

ob_start - Çıktı Arabelleğe Almayı Etkinleştirme

Açıklama

bool ob_start ([ çağrılabilir$ output_callback = BOŞ [, int $ yığın_boyutu = 0 [, int $ işaretleri = PHP_OUTPUT_HANDLER_STDFLAGS ]]])

Bu işlev, çıktı arabelleğe almayı etkinleştirir. Çıktı arabelleğe alma etkinse, komut dosyası çıktısı gönderilmez (başlıklar hariç), ancak dahili bir arabellekte saklanır.

Bu dahili ara belleğin içeriği, kullanılarak bir dize değişkenine kopyalanabilir. ob_get_contents()... Dahili arabelleğin içeriğini görüntülemek için şunu kullanın: ob_end_flush()... Alternatif olarak kullanabilirsiniz ob_end_clean () arabelleğin içeriğini yok etmek için.

Dikkat

Bazı web sunucuları (örneğin Apache), geri arama işlevi çağrıldığında betiğin çalışma dizinini değiştirir. kullanarak geri getirebilirsiniz. chdir (dirname ($ _ SERVER ["SCRIPT_FILENAME"])) geri arama işlevinde.

Çıkış arabellekleri yığına gönderilir, yani çağrıya izin verilir ob_start () başka bir aktif aradıktan sonra ob_start ()... Bu durumda aramak gerekir ob_end_flush() uygun sayıda kez. Birden fazla geri arama etkinse, çıktı, yuvalama sırasına göre her biri için sırayla filtrelenir.

Parametre Listesi

İsteğe bağlı output_callback parametresini ayarlayabilirsiniz. Bu işlev, argüman olarak bir dize alır ve aynı zamanda bir dize döndürmesi gerekir. Sıfırlama (gönderme) veya temizleme (ile ob_flush (), ob_clean () veya benzer işlevler) veya isteğin sonunda çıktı arabelleği tarayıcıya boşaltılırsa. output_callback işlevi çağrıldığında, arabelleğin içeriğini alır ve tarayıcıya gönderilecek çıkış arabelleği için güncellenmiş içeriği döndürmelidir. output_callback geçerli bir işlev değilse, belgelenen işlev geri dönecektir YANLIŞ... Bu parametre için fonksiyon açıklaması:

Sicim işleyici (dize $ arabellek [, int $ aşaması ])

Tampon Çıkış arabelleğinin içeriği. faz Sabit bit maskesi PHP_OUTPUT_HANDLER_ *.

output_callback dönerse YANLIŞ, ardından orijinal bilgiler değişmeden tarayıcıya gönderilir.

output_callback parametresi, bir değer iletilerek yoksayılabilir BOŞ.

ob_end_clean (), ob_end_flush(), ob_clean (), ob_flush () ve ob_start () davranışları tahmin edilemez olduğundan geri arama işlevlerinden çağrılamaz. Arabelleğin içeriğini silmek istiyorsanız, geri arama işlevinden "" (boş bir dize) döndürün. Ayrıca işlevleri çağıramazsınız. print_r ($ ifadesi, doğru) veya Highlight_file ($ dosya adı, doğru)çıktı arabelleğe alma geri aramalarından.

Yorum Yap:

PHP 4.0.4'te işlev ob_gzhandler () sıkıştırılmış web sayfalarını destekleyen web tarayıcılarına gz kodlu veri göndermeyi kolaylaştırmak için tanıtıldı. ob_gzhandler () tarayıcı tarafından kabul edilen içerik kodlamasının türünü belirler ve buna göre çıktıyı döndürür.

Parça boyutu

İsteğe bağlı parça_boyutu parametresi iletilirse, yığın_boyutu'na eşit veya daha büyük herhangi bir çıktıdan sonra arabellek temizlenir. Varsayılan değer 0 arabellek kapatıldığında çıkış işlevinin çağrılacağı anlamına gelir.

PHP 5.4.0'dan önce değer 1 parametreyi ayarlayan özel değerdi Parça boyutu 4096'da.

Flags parametresi, çıktı arabelleğinde gerçekleştirilebilecek işlemleri kontrol eden bir bit maskesidir. Varsayılan olarak, çıktı arabelleğinin temizlenmesine, temizlenmesine ve silinmesine izin verir; bu, | | , veya PHP_OUTPUT_HANDLER_STDFLAGS Bu kombinasyonun kısaltması olarak.

Her bayrak, aşağıda açıklandığı gibi bir dizi işleve erişimi kontrol eder:

Devamlı Fonksiyonlar
PHP_OUTPUT_HANDLER_CLEANABLE ob_clean (), ob_end_clean (), ve ob_get_clean ().
PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(), ob_flush (), ve ob_get_flush().
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean (), ob_end_flush(), ve ob_get_flush().

Dönüş değerleri

İadeler NS başarılı bir şekilde tamamlandığında veya YANLIŞ bir hata durumunda.

Değişikliklerin listesi

sürüm Açıklama
7.0.0 Eğer ob_start ()çıktı arabelleğinin geri çağırma işlevi içinde kullanıldığında, bu işlev artık bir hataya neden olmaz E_ERROR ve bunun yerine arayacak E_RECOVERABLE_ERRORüçüncü taraf hata işleyicilerinin onu yakalamasına izin vererek.
5.4.0 Üçüncü parametre ob_start () boole'den değiştirildi ( boole) silme parametresinin (buna ayarlandığında YANLIŞ komut dosyası çıkana kadar arabelleğin silinmesini engelledi) bir tamsayıya ( tam sayı) bayraklar parametresi. Ne yazık ki bu, PHP 5.4.0'dan önce üçüncü parametreyi kullanan kod için bir API uyumsuzluğunun tanıtıldığı anlamına gelir. Her iki sürümle de uyumluluğu korumak için kodla nasıl çalışılacağını anlamak için bayrak örneğine bakın.
5.4.0 Parametre Parça boyutu yerleştirmek 1 , şimdi çıktı arabelleğine 1 bayt verir.
4.3.2 İşlev geri dönecek YANLIŞ output_callback başarısız olması durumunda.

Örnekleri

Örnek # 1 Kullanıcı tanımlı geri arama işlevi örneği

İşlev geri çağırma ($ arabellek)
{
// tüm elmaları portakallarla değiştir
dönüş (str_replace ("elmalar", "portakallar", $ arabellek));
}

Ob_start ("geri arama");

?>


Elma ile armudu kıyaslamak gibi.




ob_end_flush();

Merhaba Habr!

Bugün, acemi web yöneticilerine php'de çıktı arabelleğe almayı kullanmanın çeşitli şık yollarını tanıtmak istiyorum. Deneyimli web yöneticileri burada kendileri için yararlı bir şey bulamazlar. Rağmen - kim bilir?

Hepinizin bildiği gibi, php'de çıktı arabelleğe alma, "ob_" ile başlayan bir dizi işlev tarafından kontrol edilir. Bunlardan en önemlisi ob_start'tır. Başlatıldığında, sonraki çıktıyı, yani her türlü print(), echo ve benzerini toplar ve daha sonra ziyaretçiye bir html sayfası şeklinde verilecektir. Ve çıktı almadan önce arabelleğe almaya başladıysak, bu neredeyse bitmiş sayfayla nihayet bir şeyler yapabiliriz.


Örneğin, üçüncü taraf sitelere giden tüm bağlantıları filtrelemek istiyoruz.

Bir balta kadar eski australopithecus forumumuzda, çok sayıda spam gönderici, ziyaretçileri sefahat, tek kollu haydutlar ve siyasi ajitasyonla dolu yerlere çekiyor. js'yi izleme ile kullanmak mümkün olabilir, ancak bunun yerine tüm bu bağlantıları şu şekilde değiştirmek istiyoruz:

"http://blackjack-hookers.com" => "http://myoldforum.ru/redirect.php?url=blackjack-hookers.com"

Yöntem en etkili olmayabilir, ancak etkili olabilir. Redirect.php'yi bir filtre ve kara liste ile yazdık ve şimdi binlerce forum sayfasındaki tüm bağlantıları dönüştürmemiz gerekiyor. ob_start ve birkaç normal ifade ile bunu sadece birkaç satırda yapacağız:

f_callback ($ arabellek) işlevi ($ arabellek = preg_replace ("#http: // (www.)? Myoldforum \ .ru / #", "/", $ arabellek); $ arabellek = preg_replace ("# href =" http : // ([^ "] *)" # "," # href = "/redirect\.php\?url=$1", $ tampon); return $ tampon;) ob_start (f_callback);

Şimdi bu kodu index.php'nin başına veya sunucunun sayfaları görüntülerken eriştiği başka bir dosyaya ekleyerek ihtiyacımız olanı alacağız.

İçeriği bu şekilde değiştirerek, motorun yöntemleri çerçevesinde sınırlı kalmıyoruz. Bu çok değerli olabilir. Örneğin, bir eklenti ekleyebilirsiniz:

function create_plugin () (/ * bir şey üretiyor * /) function f_callback ($ arabellek) (/*...*/ $ arabellek = str_replace ("", create_plugin (), $ arabellek); /*...*/ dönüş $ arabellek;) ob_start (" f_callback ");

Artık içeriğe eklediğimiz yerde, almak istediğimiz şey karşımıza çıkacak. Kullanımlarından biri, bir web sitesi sayfasına bir js widget'ı eklemektir. Örneğin, Yandex haritaları. Bu genellikle zor değildir, ancak bazen kötü yazılmış bir site sayfası düzenleyicisi tırnak işaretleri ve küme parantezlerinden kaçarak widget'ı bozar. Gördüğünüz gibi, bu sorun kolayca çözülebilir.

Çıktı tamponu ile çalışmak için php araç kutusu zengindir ve sadece ob_start ile sınırlı değildir. Bazı durumlarda, yukarıdaki teknikler tüm sayfada çalıştıkları için gereksiz yere kaynak yoğun ve hantaldır. Ormana gitmek istemediğimiz, ancak kesinlikle düzeltmemiz gereken bir şeyin oluşturulması etrafında şablonda bir sarmalayıcı oluşturarak bunun yalnızca bir kısmını işleyebiliriz:

(BÜYÜK ÇILGIN ŞEY OLUŞTUR)

Tüm bu ifadeleri zaten fark etmiş olmalısınız: "Tırmanmak istemiyorum", "tyrannosaurus sandalyesi kadar eski", "çarpık yazılmış editör" ... İdeal bir dünyada, çıktı tamponunun etrafındaki mermilere ihtiyaç yoktur. ob_start ile yapılabilecek her şey teorik olarak onsuz da yapılabilir. Bu teknik bazen proje kodunu karıştırır, birçoğu anlamını yalnızca sıkıştırma için ob_gzhandler'a göndermekte görür ve diğer durumlarda kullanımını tehlikeli olarak görür. Ancak çoğu zaman çıktı kontrolü tek başına yeterli değildir.

Özellikle derine inmek istemiyorsanız.

Okuma Süresi: 7 dakika

PHP'nin talebi, Facebook, Google, Wikipedia ve YouTube gibi dünyanın en iyi web sitelerinin arka uçta PHP komut dosyaları kullanması gerçeğinden açıkça görülmektedir. PHP, dinamik web siteleri geliştirmede yardımcı olur. Kullanıcı bir form gönderdiğinde bilgileri doğrudan sunucuya gönderen sunucu taraflı bir betik dilidir. PHP betiklerinin nasıl yazılacağına ilişkin adım adım kılavuza geçmeden önce, size PHP hakkında genel bir bilgi vereceğim.

PHP nedir?

İlk olarak Rasmus Lerdorf tarafından tanıtılan PHP, artık web geliştirme endüstrisinde fiili bir kodlama standardı haline gelen açık kaynaklı, sunucu taraflı bir genel betik dilidir. Kolayca öğrenilebilir ve eğer biri bir kodlama geçmişine sahipse, bunu çok basit bulacaktır. Bu nedenle birçok kişi giriş seviyesi kodlama becerilerini geliştirmek için PHP kullanıyor.

PHP, Windows, UNIX, Linux gibi farklı işletim sistemlerinde çalışır ve MySQL, Microsoft Access ve Oracle gibi farklı veritabanlarını destekler. PHP sadece form verilerini toplamakla kalmaz, aynı zamanda sunucu üzerinde dosyalar oluşturabilir, okuyabilir, yazabilir, silebilir ve kapatabilir.

HTML'ye kolayca gömülebilir. PHP kodu HTML'ye etiketlerle gömülür.

PHP'ye Başlarken

PHP, istemci tarafı betik dillerinden farklıdır. PHP kodu sunucu tarafında yürütülür ve HTML üretilmesiyle sonuçlanır ve daha sonra yürütme için istemci tarafına (örneğin tarayıcınız için) geri gönderilir.

PHP kodu nerede kullanılır?

PHP'yi dinamik web sayfaları oluşturmak, form verilerini toplamak ve tanımlama bilgileri göndermek veya almak için kullanabilirsiniz.

PHP Komut Dosyalarının Uygulamaları

PHP betiklerinin kaç farklı şekilde kullanıldığını görelim.

Sunucu Tarafı Komut Dosyası

Sunucu tarafı komut dosyası oluşturma, PHP'nin ilk amacıdır. PHP ile bir masaüstü bilgisayarda çalışmaya başlamak için tek ihtiyacınız olan bir PHP Ayrıştırıcı, bir web sunucusu (Apache gibi) ve Google Chrome gibi bir web tarayıcısıdır.

Komut Satırı Komut Dosyası

Linux'ta PHP'yi veya Windows'ta görev zamanlayıcıyı kullanmak istiyorsanız, gerçekten bir web sunucusuna ihtiyacınız yok, yalnızca bir PHP Ayrıştırıcısına ihtiyacınız var. Buna "komut satırı komut dosyası oluşturma" denir.

Masaüstü Uygulamaları

PHP, masaüstü uygulamaları geliştirmek için uygun bir dil olmasa da, temelde PHP'nin bir uzantısı olan PHP-GTK gibi bazı gelişmiş özellikleri destekler. PHP-GTK, nesne yönelimli kullanıcı arabirimi sağlar.

PHP, yalnızca istediğiniz işletim sistemini seçmenize değil, aynı zamanda aşina olduğunuz bir web sunucusunu kullanma seçeneklerine de sahip olmanızı sağlar. Ayrıca, nesne yönelimli programlamanın yanı sıra prosedürel programlamaya da izin verdiği için yeni başlayanlar ve profesyonellerin komut dosyalarını kendi yöntemleriyle yazmasına olanak tanır.

PHP yalnızca HTML çıktısı almanızı sağlamakla kalmaz, aynı zamanda resimler, PDF'ler, videolar ve sesler eklemenize de olanak tanır. PHP, XHTML ve XML dosyalarını otomatik olarak oluşturabilir.

PHP, LDAP, HTTP, COM, POP3, vb. gibi protokollere destek sağlar. Ayrıca WDDX karmaşık veri alışverişini de destekler.

PHP'nin Ön Koşulları

PHP öğrenmeye başlamadan önce, bazı temel bilgileri öğrenmeniz gerekir. HTML (Köprü Metni Biçimlendirme Dili), SS (Basamaklı Stil Sayfaları) ve Javascript.

PHP nasıl kurulur

PHP'ye başlamadan önce, PHP ve MYSQL ile bir web sunucusuna ihtiyacınız var. Bunun için Apache gibi bir web sunucusu da kurmalısınız. Bunu PC'nizde yerel olarak yapmak için XAMPP'yi doğrudan şu adresten indirebilirsiniz: Apaçi Arkadaşlar.

Apache, PHP, MySQL ve PHPMyAdmin kurulumu

PHP, MySQL, PHPMyAdmin ve Apache'yi tek seferde kurabilmek için XAMPP kurulu olmalıdır.

Windows için XAMPP'ye gidin ve indirme işlemi kısa süre sonra başlamalıdır.

Tıkla .exe kurulum prosedürünü başlatmak için dosya.

Yüklemek istediğiniz bileşenleri seçin ve "İleri" ye tıklayın.

Bileşenler alanında birkaç seçeneği görüntüleyebilirsiniz. Yeni başlayan biri olarak, hepsine ihtiyacınız yok. Çok ünlü bir web sunucusu olan Apache'yi kurmanız gerekiyor. Müşteri yanıtlarını yönetir. Veri depolama ve görüntüleme için MySQL gibi bir veritabanına ihtiyacınız var. Localhost'ta işlem yapmak için Filezilla FTP sunucu seçeneği gerekli değildir. Sonraki seçenek, Mercury Posta Sunucusu seçeneğidir. Birincil işlevi, sunucu tarafından alınan e-postalarla ilgilenmektir. Şu anda bir zorunluluk olmayan e-postaların akışını sağlamak için gereklidir. Tomcat ayrıca Apache'ye ait bir web sunucusudur.

Programlama dillerine gelince, PERL (aynı zamanda üst düzey bir programlama dilidir) şu anda bir ihtiyaç değildir. PhpMyAdmin, veritabanının yönetici panelidir ve gereklidir. Webalizer, analiz amaçlı bir uygulamadır ve izleme amacıyla yüklemeniz gerekir. Fake Sendmail de ileride anlatılacak bir uygulamadır.

XAMPP'yi kurmak istediğiniz yeri seçin ve ardından "İleri"ye tıklayın.

Kurulum işlemine devam etmek için gelen ekranlarda "İleri" ye tıklayın.

Şimdi, son ekranı göreceksiniz. “Denetim Masasını Başlat” seçeneğini korumanızı öneririm. Kurulum işlemini tamamlamak için “Bitir”e tıklayın. Kısa süre sonra yeni bir pencere açılacaktır.

XAMPP Kontrol Paneli şimdi başladı. Şimdi, başlamak için Apache ve MySQL satırlarında “Başlat” düğmesine tıklayın.

Artık kodu yazmaya başlamaya hazırsınız. Şimdi tek ihtiyacınız olan gibi bir editör

echo “İlk PHP Komut Dosyam”;
?>

Şimdi sayfayı “test.php” olarak kaydedin. htdocs klasörünü seçin ve “Kaydet” düğmesine tıklayın.

Şimdi, bir web tarayıcısı açın ve yazınyerel ana bilgisayaradres çubuğunda. Dizin dosyasını otomatik olarak açacaktır, ancak yazarsanızlocalhost / test.php, kaydettiğimiz sayfayı açacaktır.

Başka bir örnek düşünün.




PHP'ye Başlarken


PHP İçin Başlangıç ​​Kılavuzu


yankı "2 + 3 ″."
”; // 2 + 3 çıktısını gösterecek
print “2 + 3”; // print ayrıca 2 + 3 çıktısını da gösterecek
?>

Bu örnekte, kullandığımız Eko ve Yazdır aynı sonucu göstermek için İşte aldığımız çıktı.

Farklı ifadeler kullanarak 2 + 3'ün iki satırının çıktı olarak görüntülendiğini görebilirsiniz. Profesyonel programcıların çoğu yankı kullanmayı tercih eder, çünkü yankı aynı anda birden fazla dize veya değer getirebilir, oysa print her seferinde bir ifade görüntüler. Hem yankı hem de baskı parantezli veya parantezsiz kullanılabilir;Yazdır () veya Eko ()... Ayrıca, değişken kullanmadan iki sayının toplamını göremeyeceğinize dikkat edilmelidir. Değişken kavramı, bir sonraki öğreticide PHP veri türleri ile birlikte tanıtılacaktır.

Aşağıdaki örneği düşünün.




PHP'ye Başlarken


PHP İçin Başlangıç ​​Kılavuzu


PHP Öğrenmek İçin Eğitim Serisi


$a = 99;
$ b = “Hesap”;
echo “$ b'de sahip olduğunuz sayılar $ a'dır.”
”;
echo '$ b'de sahip olduğunuz sayılar $ a';
?>

Bu örnekte, aynı dizeyi çift tırnak ve tek tırnak ile tekrarladığımızı görebilirsiniz. İşte çıktı.

Çift tırnak kullandığımızda, değişkenlere atanan değerlerle birlikte dizeyi görüntüler.$ bir ve $b... Ancak, tek tırnak kullandığımızda, tüm ifadeyi dize olarak ele alacak ve değişkenleri gösterecektir. $ bir ve $b... Bir sonraki derste de değişken kavramına detaylı olarak değineceğim.

Şimdilik, tebrikler! Az önce ilk PHP betiklerinizi çalıştırdınız! Önümüzdeki haftalarda PHP hakkında daha fazla tartışacağım; en temel eğitimlerden en gelişmişlerine kadar. Daha fazla PHP eğitiminde görüşmek dileğiyle.

Bu arada, kaydolabilir ve devrim niteliğindeki yönetilen Bulut Barındırma Platformunda PHP'yi dağıtabilirsiniz. Google Compute Engine, DigitalOcean ve Amazon Web Services gibi çevredeki en iyi altyapılardan bazılarından bulut sağlayıcınızı seçin. Kaydolmanız, bulut sağlayıcısını seçmeniz ve PHP'yi seçtiğiniz bulut sağlayıcınıza dağıtmanız 6 dakikadan az sürecektir. Hızlı ve güvenlidir. Ayrıca, sizi asla uzak tutmayan 7/24 destek ekibiyle her zaman yanınızdasınız!

Sunucu Yönetimi endişesi olmadan PHP web sitelerini başlatın.

Git, Composer ve SSH ile Önceden Yüklenmiş Optimize Edilmiş Yığın

ahmet han

Ahmed, Cloudways - Yönetilen Bulut Platformu'nda PHP topluluk uzmanıydı. PHP ve SEO konusunda kapsamlı bilgiye sahip bir yazılım mühendisidir. Boş zamanlarında Game of Thrones izlemeyi seviyor. Çalışmalarından haberdar olmak için Ahmed'i Twitter'da takip edin. Ahmet'e mail atabilirsin.

phpFox, uygulama yapısını şu şekilde ayırır: Uygulama, Uygulama yeni işlevler sağlar, yeni bloklar yöneticilerin şablona koyduğu,
phpFox'u harici platformlar vb. Amazon S3 ile entegre edin ve hatta phpFox platformunun çalışma şeklini değiştirin.

Yeni Bir Uygulama Oluşturma

Başlamanın en iyi yolu, kullandığımız en yaygın API işlevlerini gösteren küçük bir uygulama oluşturmaktır.
Örneğimiz, bir Yapılacaklar listesi, bu basit yapılacaklar listesi uygulaması, üyelerin yapılacaklar listelerini paylaşmasına izin verir.

Bir uygulama oluşturmak için AdminCP -> Apps -> Installed -> Actions açılır menüsü -> New App -> put'a gidin. YOUR_APP_ID açılır pencerede -> Gönder'i tıklayın.
Ardından /PF.Site/Apps/ klasörünü kontrol edin. YOUR_APP_ID/, orada bazı varsayılan dosya ve klasörleri göreceksiniz.

APP_ID, uygulamanızın adıdır

Uygulama Yapısını Tanımlayın

  • Ajax: Bu dizin Ajax işleyici sınıflarını içerir
  • varlıklar: Bu dizin, resimler, css, javascript, ... gibi ham varlıkları içerir.
  • Engellemek: Bu dizin şunları içerir: engellemek sınıflar
  • kontrolör: Bu dizin şunları içerir: kontrolör sınıflar
  • Hizmet: Bu dizin şunları içerir: hizmet sınıflar
  • kancalar: Bu dizin şunları içerir: Eklenti Kodlar
  • Görüntüleme: Bu dizin şablon komut dosyalarını içerir
  • ifade.json: Bu dosya dil ifadelerini bildirir
  • simge.png: Bu, uygulamanızın simgesidir
  • Install.php: Bu dosya, uygulamanızın kurulum komut dosyasını içerir
  • start.php: Bu dosya, önyükleme komut dosyaları içerir.

Bazı durumlarda, kodunuzu bunlara koyabilmek için bu klasörlerin izinlerini değiştirmeniz gerekecektir.

İlk Kontrolörünüzü Yazın

Yeni ekle IndexController.php dizinin altındaki dosya ./PF.Site/Apps/TodoList/Controller/
örnek kodu yapıştırın.

şablon (); // görünüm başlığını ayarla $ template-> setTitle ("Yapılacaklar Listesi"); // görünüm kırıntısını ayarla // url al $ url = $ this-> url () -> makeUrl ("yapılacaklar listesi"); $ şablon-> setBreadCrumb ("Yapılacaklar Listesi", $ url); // bölüm menülerinizi ekleyin $ template-> buildSectionMenu ("yapılacaklar listesi", ["Gözat" => $ this-> url () -> makeUrl ("/ yapılacaklar listesi"), "Oluştur" => $ this-> url () -> makeUrl ("/ yapılacaklar listesi / ekle"),]); ))

Yeni şablon dosyası ekle index.html.php altında /PF.Site/Apps/TodoList/views/denetleyici,
aşağıdaki kodu yapıştır

Merhaba, yapılacaklar listesi ana sayfası

Şimdi tanımlıyoruz güzergah konfigürasyonları tanımlamak, düzenlemek start.php, aşağıdaki kodu yapıştırın.

addAliasNames ("yapılacaklar", "YapılacaklarListesi"); // Denetleyicinizi buraya kaydedin $ module-> addComponentNames ("controller", ["todo.index" => Controller \ IndexController :: class,]); // Şablon dizini $ modülünü kaydet-> addTemplateDirs (["todo" => PHPFOX_DIR_SITE_APPS. "TodoList / görünümler",]); route ("yapılacaklar listesi", function () (\ Phpfox_Module :: instance () -> gönderme ("todo.index"); return "denetleyici";));

Tüm php sınıflarınız ad alanına sahip olmalıdır Uygulamalar \ TodoList, Bu, otomatik yükleyicinin komut dosyalarını nereye yükleyeceğini bilmesine yardımcı olur.

Bir şeyleri adlandırmanın bir kuralı vardır: adlı bir denetleyici oluşturmak istiyorsanız dizin, php dosyasını şu şekilde adlandırmalısınız IndexController.php; içinde Başlat.php, rota olmalı kitap.indexşablon dosyası olmalıdır index.html.php(şablon dosyasının adının ilk kısmı rotanın son kısmı ile aynı olmalıdır - indeks)

Göz atmayı aç, adres çubuğuna ekle /index.php/yapılacaklar listesi/, ardından sonucu görün.


Ana Menü Ekle

Ana menü phpFox tarafından otomatik olarak eklenecektir, Install.php'yi düzenleyin,

güncelleme işlevi setAlias

takma ad = "yapılacak"; )

güncelleme işlevi setOthers

menu = ["name" => "Yapılacaklar Listesi", // Menü etiketi "url" => "/ yapılacaklar listesi", // Menü URL'si "icon" => "görevler" // Menü simgeleri, bkz. http://fontawesome.io/icons/]; )

Menü etiketi için tanımlı bir ifade kullanmak isterseniz aşağıdaki betiği kullanabilirsiniz:

menu = ["phrase_var_name" => "menu_to_do_list", // "url" => "/ yapılacaklar listesi" menüsünün değişken adı, // Menü Url "icon" => "görevler" // Menü simgeler, bkz. http://fontawesome.io/icons/];

Ardından, değişikliğinizi uygulamak için uygulamanızı güncelleyin. (

Anladığım kadarıyla, site bir çerçeve kullanılmadan oluşturulacak mı? Ve sonra tanıdık geliştiricilerim tüm kulaklarıyla Yii çerçevesini öğrenmenin gerekli olduğunu söylüyorlar.

2) Sadece sormak istedim.. Kursta ele alınan bir online mağaza oluşturma örneği, oldukça akademik mi? Gerçek ticari projeler muhtemelen çerçeveler kullanılarak oluşturulur, çünkü bu, genel kod şablonlarını kullanarak geliştirme sürecini büyük ölçüde optimize eder. Bu sorunun cevabı, neler olduğunu netleştirmeye yardımcı olacaktır ... PHP Başlangıç ​​| Genel mantığı anlamak için uygulama hala devam etmeye değer mi?

Cevap:

1) Tanıdık iş doğrudur, ben de öyle düşünüyorum. Ancak herhangi bir çerçeve, örneğin bilgi gibi hazırlık gerektirir. Uygulamada bir MVC sistemi kurarken çerçevelerde kullanılan yaklaşımları takip etmeye çalıştım. Bu nedenle, PHP Start (teori ve pratik) hazırlıkta yardımcı olacaktır, bundan sonra güvenle yii2'yi (veya benzer bir şeyi) öğrenmeye başlayabilirsiniz.

Proje deposu adresi:

Soru 1:

Hatadan kurtulamıyorum:

Uyarı: Tanımsız sabit _FILE_ kullanımı - 10. satırda /Users/Elios/Sites/Test/index.php içinde "_FILE_" olduğu varsayılır

Söyle bana, ne olabilir?

Cevap:

Önce ve sonra DOSYA 2 karakter yazmanız gerekiyor _

__DOSYA__"sihirli" PHP sabitlerine aittir. Daha fazla ayrıntı burada.