Büyük bir site için en ölçeklenebilir PHP tabanlı bir dizin yapısı nedir?

7 Cevap php

Ben php sınıfları, JavaScripts ve birçok css dosyaları (MVC için dosyaların büyük miktarda söz değil) büyük bir kütüphane olacak çok büyük bir PHP MVC tabanlı site oluşturma.

Bugüne kadar ilk defa, ben aslında bir temiz ve organize bir dizin yapısını planlamak için zaman alıyorum.

Ne dizin yapıları genellikle binlerce dosya olduğunda manuever kolay olacağı kullanın ve musunuz?

7 Cevap

This is my setup. It's worked great for me for small - very large projects (including a social network).
These folders would all live within my main application folder:

  • config - contains custom PHP config dosyas
  • css - contains the project's CSS dosyas
  • helpers - contains 'helper' dosyas (each dosya is a collection of functions)
  • images - contains the project's images
  • js - contains the project's Javascript dosyas
  • lib - contains PHP classes specific to the project
  • modules - My MVC framework allows packaging site sections as modules
    • blog - An example module
      • kontrolörleri - modül için denetleyicileri içeren
      • modelleri - modülü modelleri içerir
      • views - modül için görüşlerini içerir

  • views - contains views that should be globally accessible (page header, footer, etc)

Tüm dizinleri açıkçası daha dosyalarınızı organize ederim alt klasörler içerebilir. Örneğin, 'css' klasöründe 'web' adlı alt klasörler ve 'mobil' olabilir. 'Resim' klasörü daha sonra `profili 'içerebilecek bir' user_uploaded 'klasörünü içerebilir. Uygun gördüğünüz gibi ve tabii ki bir projede ben sadece stand-alone yükleme komut dosyalarını içeren 'uploaders' adında bir klasör var, klasörler ekleyebilirsiniz.

Ben de yüklemek istiyorum ne dosya adlarını inşa yardımcı kolaylık yöntemleri kullanın. Örneğin, benim loadView () geçerli modül dizinde görünüm dosyayı arar, ya da isteğe bağlı $ modül argüman varsa, bu modülün klasör içinde özellikle bakacağız.

Bu yardımcı olur umarım.

Yalnızca bütün internet maruz istediğiniz bulunması gereken dosyaları web kök, gibi bir dizin olmalıdır.

project/
 web/
  index.php
  css/
  js/
  images/
 config/
 lib/
  • web / ziyaretçilere gösterilen kök
  • lib / Burada kütüphane klasör, ve nereye dosyalar için özdevinimli_yükle bakmak.

Sen denetleyici, modülleri, görünüm, yardımcı, vs Bu çerçeve üzerinde depeds gibi / projeye daha fazla alt klasörler ekleyebilirsiniz.

For core files which are included: approot/inc/

For data access functions and classes are in: approot/dao/

For javascripts: approot/scripts/

For CSS: approot/styles/

For images: approot/img/

For static content (normally for user profile pictures or uploaded images): approot/static/

For caches: approot/caches/

For templates or View files: approot/templates/

All pages file: approot/

Samstyle PHP Framework ikinci yapı


Burada yayınlanan cevabı 2009 oldu. Yıllar geçtikçe daha standartları klasör yapısı konuyu kapsayan PSR-0 olmak üzere yayımlandı. Ben de yeni bir (ve ben daha iyi olduğunu hissediyorum) Packfire Framework ile klasör yapısı.

Benim durumumda, bu planı asla. Sen çerçeveler ne takip için deneyebilirsiniz, ama ben oldukça onların kalıp içine tam olarak uyması asla bulabilirsiniz.

Ben sadece bir dizin maksimum 20 dosya için başparmak iyi bir kural tutmak için tavsiye. Eğer bulursanız, sadece birkaç alt dizinleri oluşturmak ve orada ortak bileşenleri taşımak, daha fazla ihtiyacımız var.

I use codeigniter for small and big projects. It's MVC feature is moderately good.

  • CodeIgniter \ system \ application \ config: DB, Ödeme ağ geçidi, ftp geneli, yolları ve benzeri yapılandırma dosyalarının her türlü içerir ...
  • CodeIgniter \ system \ application \ modelleri: veritabanı sınıfları her türlü içeren, sizin ihtiyacına göre alt klasörler oluşturmanız gerekir, ben müşteriler, Maildata, paymentModel, rapor, web hizmeti kullanılır ve ....
  • CodeIgniter \ system \ application \ views: müşteriler için çıkış olarak çalışacak dosyaların her türlü içerir mümkünse eğer, tekrar kullanım, bu dosyaları düşünmek gerekir. Modeller gibi yönetim, raporlar, e-posta, email_template gibi alt klasör oluşturmak zorunda kaldı .....
  • CodeIgniter \ system \ application \ denetleyicileri: Bu en önemli parçasıdır. Bu SEO url oluşturmak için yardımcı olur, böylece bu sefer alt klasörler hakkında daha dikkatli olmalıdır. Sen ..... yönetim, ürünler, raporlar, siparişleri gibi oluşturmak ve denetleyici sınıf fonksiyonları için iyi bir isim düşünebilirsiniz.

Bu PHP / HTML dosyası için vardı.

Şimdi diğer dosyaları hakkında:

  • CodeIgniter \ images: görüntüler için
  • CodeIgniter \ komut: Java komut ve bunların çerçevesi için
  • CodeIgniter \ stilleri: CSS için
  • CodeIgniter \ yüklenenler: yüklenen dosyalar için, sen DB dosyaları koymak istemiyorsanız

Detay için ayrıntılı CodeIgniter çerçeve bakın.

İşte "CodeIgniter \" AppRoot olduğunu

symfony 1.4 veya symfony 2 dir yapısına bakabilirsiniz. Sizin için en kolay olanı seçin.

Ben bu projenin olacak kadar büyük bağlıdır inanıyorum. Bu çoğunlukla kullanılan budur:

project/
  index.php
  img/
  css/
  js/
  views/
  functions/

Sürece tüm proje dosyaları organize olarak ...