Küçük bir PHP uygulama dağıtma

3 Cevap php

Ben dağıtmak istiyorum küçük bir PHP uygulama yazdı. Minimal güçlük çoğu webhosts monte edilebilir ki ben en iyi uygulamalar arıyorum.

Kısaca: Bu bir şifre ile giriş yapın insanlar bir kez dosya indirmenize olanak sağlayan basit bir araçtır.

Yani benim sorular şunlardır:

1) Nasıl yapılandırma değerleri işlemek gerekir? Öyle bir yapılandırma dosyası uygun görünüyor, bir veritabanı kullanılarak değilim. Ben diğer php uygulamalar (örneğin Wordpress) tanımlar kullanmak olduğunu biliyorum, ama onlar küresel ve isimleri çelişmesi potansiyel var. (Global değişkenler de belli ki, aynı sorun var.) PHP yerleşik "ini" dosyası mekanizması baktı. Sadece üst görüşlerinizi sağlar - böylece kolayca ayar her açıklama yapamazsınız - ve "php-f" ile sözdizimi doğrulamak olamaz. Diğer seçenekler?

2) Nasıl çiftleşmiş işlemek için? Başvuru formu dışarı pompalamak gerekiyor. Muhtemelen bir hata mesajı ile. (Örneğin, "Özür dilerim, yanlış parola.") Ben HTML formu ile bir sınıf değişkeni var, ama aynı zamanda harici bir şablon dosyası (config belirtilen) yerine kullanılmak üzere izin verdik. Ben bazı önemsiz arama yapmak ve yerine - örneğin % SCRIPT% script adının,% DURUMU% hata mesajı tutun. Bu biraz tekerleği yeniden icat gibi hissediyor, ama Smarty gibi bir çiftleşmiş sistemi dahil olmak üzere overkill. (Artı zaten bir çiftleşmiş sistem olabilir.) Diğer seçenekler?

3) i18n - Orada sadece 3 mesajı dizeleri vardır ve gettext evrensel yüklü olması görünmüyor. Böyle kötü bir fikir sadece config dosyasında bu üç parametre dizeleri yapmak mı?

4) En iyi nasıl diğer çerçeveler ile entegre etmek? Benim app bir tek sınıftır. Yani, ben sadece sınıf denilen gösterdi nasıl bir php komut dosyası içerebilir düşündüm. Bu başka bir çerçeve içine entegre olan insanlar için bir başlangıç ​​noktası olabilir, ama aynı zamanda özelleştirme ile ilgilenen olmayanlar için olduğu gibi-iyi olurdu. Makul?

5) POST parametreleri / GET - bir sınıf $ _GET ve $ _POST bakıyor olması için kötü bir biçim midir? Tüm değerler inşaat sırasında benim sınıfa geçti edilmelidir?

Teşekkürler.

3 Cevap

Configuration

Böyle bir php dosyasını kullanabilirsiniz:

<?php
return array(
  'option1' =&gt; 'foobar',
  'option2' =&gt; 123,
  //and so on...
  );
?>

Ve ana sınıfı sadece kullanın:

$config = (array) include 'path/to/config/file';

Çoğunlukla diğer uygulamalarda bir bileşeni olarak sınıf dağıtmak planlıyorsanız Ve, o zaman sadece sınıf 'kurucu bir parametre olarak yapılandırma dizi / nesne koymak ve kullanıcıya ayrıntıları bırakın.

Templating

Böyle basit bir uygulama için açıklanan yöntem yeterli olmalıdır. Biri her zaman sınıfını genişletmek ve kendi ile çıkışının yöntemi aşırı unutmayın.

I10N

3 değişkenler için, daha önce de belirtildiği gibi geneli olarak saklamak daha fazla şey sadece overkill.

Integration

Açıklamalar ne yapıyorlar ve hangi parametreler ile her bir kamu yöntemi (veya daha iyi de korumalı ve özel olanları) Comment ihtiyaç vardır. Bir örnek ile birleştiren, bu çoğu kullanıcı için yeterli olacaktır.

GET vs POST

Your class uses passwords and you even think of sending them via GET? ;) Think of browser history, referer headers etc - your users' passwords would be visible there.

  1. Yapılandırma sınıf örneklerine lokal olabilir? Yoksa yapılandırma değerleri sorgulamak için bir örneğini oluşturabilir küçük bir sınıf oluşturabilir? Ayrıca size uygulamanın adı ile herhangi bir global değişkenler prepending çatışmaları durdurmak için bir yol gitmek gerekir.

  2. Lütfen çiftleşmiş gerçekten basit ise, sadece kısa bir templater yazmak. İnsanların herhangi bir 3. parti templater ile olsun sorunları savuşturmak için çalışırken daha kolay olacak. Ayrıca lisans sorunları basitleştirmek olabilir. Onlar zaten ne endişesi başlarsanız, hiçbir şey serbest asla. Çok kombinasyonları vardır.

  3. 3 dizeleri? Evet yapılandırma hallediyoruz bu aynı şekilde yapın.

  4. Bir intro Eğer sınıfını kullanmak nasıl açıklayan boyunca iyi yorumlar.

  5. Öyle düşünmüyorum. Eğer rahatsız ediyorsa, sen hiçbiri sağlandığı takdirde (ki bir güvenlik riski olabilir gerçi) GET / POST değerleri aramak sonra, ilk verilen argümanları kullanmak için varsayılan argümanlar kullanabilirsiniz

Dikkate alınması gereken başka şeyler vardır. Birçok kişi paylaşılan ana ve sonuç olarak, kendi php.ini üzerinde kontrol veya php sürümü yok. Siz sadece mümkün olduğu kadar yaygın olduğu özellikleri kullanarak emin olmak gerekir.

Bir örnek shorttags (Eğer <?php ... ?> ve <?php echo "..."?> yerine <? ... ?> veya <?= "..." ?> kullanmak zorunda) bazı bilgisayarlar üzerinde etkin olmaması hangi bir kraliyet PİDE olabilir.

Pastör'e en iyi tavsiye ek olarak:

  • Kullan <?php sadece
  • Eğer sağlamak için devre dışı bırakılabilir fonksiyonları, kullanım function_exists() kullanıyorsanız bunlar mevcut konum. @missing_function() PHP oturum herhangi bir hata olmadan sessizce ölmek yapar.
  • Sen php.ini ile değiştirilebilir / devre dışı bırakılabilir şeyler güvenemez. ini_get(), farklı ayarlara adapte kullanın.
  • magic_quotes etkinse, şerit giriş kopyanızdan yalnızca bölü - küresel dizileri değişiklik yok! Bazı topal kod güvenlik bu bölü mevcut olan güveniyor olabilir.
  • Kullanıcıların sersemce belgeleri / web sitesinden kopyala-yapıştır kodu bekliyoruz.