İçeriğe geç

Kod Organizasyonu İçin En İyi Uygulamalar

XOOPS’de Kod Organizasyonu En İyi Uygulamaları

Section titled “XOOPS’de Kod Organizasyonu En İyi Uygulamaları”

Sürdürülebilirlik, ölçeklenebilirlik ve ekip işbirliği için doğru kod organizasyonu şarttır.

İyi organize edilmiş bir XOOPS modülü şu yapıyı takip etmelidir:

mymodule/
├── xoops_version.php # Module metadata
├── index.php # Frontend entry point
├── admin.php # Admin entry point
├── class/
│ ├── Controller/ # Request handlers
│ ├── Handler/ # Data handlers
│ ├── Repository/ # Data access
│ ├── Entity/ # Domain objects
│ ├── Service/ # Business logic
│ ├── DTO/ # Data transfer objects
│ └── Exception/ # Custom exceptions
├── templates/ # Smarty templates
│ ├── admin/ # Admin templates
│ └── blocks/ # Block templates
├── assets/
│ ├── css/ # Stylesheets
│ ├── js/ # JavaScript
│ └── images/ # Images
├── sql/ # Database schemas
├── tests/ # Unit and integration tests
├── docs/ # Documentation
└── composer.json # Composer configuration
Classes: PascalCase (UserController, PostRepository)
Methods: camelCase (getUserById, createUser)
Properties: camelCase ($userId, $username)
Constants: UPPER_SNAKE_CASE (DEFAULT_LIMIT, MAX_USERS)
Functions: snake_case (get_user_data, validate_email)
Files: PascalCase.php (UserController.php)
  • Dosya başına bir sınıf
  • Dosya adı sınıf adıyla eşleşiyor
  • Dizin yapısı ad alanı hiyerarşisiyle eşleşir
  • İlgili sınıfları bir arada tutun
  • module genelinde tutarlı adlandırma kullanın
{
"autoload": {
"psr-4": {
"Xoops\\Module\\Mymodule\\": "class/"
}
}
}
<?php
class Autoloader
{
public static function register()
{
spl_autoload_register([self::class, 'autoload']);
}
public static function autoload($class)
{
$prefix = 'Xoops\\Module\\Mymodule\\';
if (strpos($class, $prefix) !== 0) {
return;
}
$relative = substr($class, strlen($prefix));
$file = __DIR__ . '/' .
str_replace('\\', '/', $relative) . '.php';
if (file_exists($file)) {
require $file;
}
}
}
?>
  • Her sınıfın değişmek için bir nedeni olmalı
  • Endişeleri farklı sınıflara ayırın
  • Sınıfları odaklanmış ve uyumlu tutun
  • Anlamlı, açıklayıcı isimler kullanın
  • PSR-12 kodlama standartlarını takip edin
  • Açık olmadığı sürece kısaltmalardan kaçının
  • Tutarlı desenler kullanın
  • İlgili dersleri bir arada gruplayın
  • Endişeleri alt dizinlere ayırın
  • Şablonları ve varlıkları düzenli tutun
  • Tutarlı dosya adlandırma kullanın
  • Tüm sınıflar için uygun ad alanlarını kullanın
  • PSR-4 otomatik yüklemeyi takip edin
  • Ad alanı dizin yapısıyla eşleşir
  • Yapılandırma dizininde yapılandırmayı merkezileştirin
  • Ortam tabanlı yapılandırmayı kullanın
  • Ayarları sabit kodlamayın
<?php
class Bootstrap
{
private static $serviceContainer;
private static $initialized = false;
public static function initialize()
{
if (self::$initialized) {
return;
}
global $xoopsDB;
self::$serviceContainer = new ServiceContainer($xoopsDB);
self::$initialized = true;
}
public static function getServiceContainer()
{
if (!self::$initialized) {
self::initialize();
}
return self::$serviceContainer;
}
}
?>

Ayrıca bakınız:

  • İstisna yönetimi için Hata İşleme
  • Test organizasyonu için testler
  • ../Patterns/MVC-Pattern denetleyici yapısı için

Etiketler: #en iyi uygulamalar #kod organizasyonu #psr-4 #module geliştirme