Bu yazıyı okumasanız da olur, vaktiniz varsa buyrun. İşte benim küçük framework’um.
PHP 8 sürümünü hedefleyerek kodlama yapıyorum. Veritabanı olarak sunucu tarafında (Cloud, paylaşımlı) MySQL, yerelimde MariaDB 10.3 sürümünü kullanıyorum. Maalesef kullandığım sunucuda PHP sürümünü proje bazlı düzenlenemiyor. Bir ayarla tüm sitelerdeki PHP sürümleri değiştiriliyor. Yerelimde Apache 2 kurulu. Cloud ortamında LiteSpeed var. Çok yakmayan bir paylaşımlı cloud hizmeti kullanıyorum. İşletim sistemim Ubuntu 20.04 LTS sürümü. Yeni LTS sürüm çıkınca güncelliyorum.
Uzun zamandır KDE masaüstü ortamı ile gelen Kate programını kullanarak kodlama yapıyorum. phpMyAdmin ve bazen de Adminer kullanarak veritabanına bağlanıyorum. PHP hata ayıklayıcısı Xdebug daima kurulu. Halen yayında 3 sitem var. Bir tanesinde (işte bu sitede) 10 yıldır WordPress kurulu. Takipçisi olmayan SMF kurulu bir tane forumum var (turkdefence.com). 10 yıldır yayın hayatında olan ve 3-4 defa tekrar ve tekrar yazdığım kitaphaber.com.tr sitesi var. Tüm kodlamalarımı bu siteye yönelik yapıyorum.
Kodlarken PSR-12 Strict kurallarını uyguluyorum. TinyMCE editörü ile içeriklerimi düzenliyorum. PHP_CodeSniffer sayesinde kodlarımı tarayıp PSR-12 standartlarına uyumlu hale getiriyorum. PHPMD kurallarının hepsini kullanıyorum. Gerektiği yerlerde istisna uyguluyorum. Twigcs ile twig şablonlarındaki gözden kaçan hataları düzeltiyorum.
Twig şablon motorunun 3. sürümünü kullanıyorum. Veritabanı soyutlaması için ADOdb işimi görüyor. Yönetim paneli teması için AdminLTE (3. sürüm) temasını tercih ediyorum. PHP ile resim boyutlandırma işlemleri için pek çok kütüphane var. Normalde ImageMagick ile kendi resim boyutlandırma işlemlerimi hallediyorum. PHP İmage Resize PHP GD üstünden çalıştığı için yedek plan olarak duruyordu. Cloud sunucu firmasının bir anda WebP desteğini iptal etmesiyle yükü omuzlamak zorunda kaldı. Hiçbir Router tam olarak bana uymayınca bir başka özgür yazılım projesini kendime uyarladım ve adına Tembel Router adı altında kullanıyorum.
PHP Strict Coding: https://github.com/opsway/psr12-strict-modern-standart
PHPMD: https://github.com/phpmd/phpmd
PHPMD kurallarım: https://gist.github.com/libreajans/a4a07144a662c22df455d8216ccc87c2
Twigcs: https://github.com/friendsoftwig/twigcs
Twig şablon motoru: https://twig.symfony.com
ADOdb : https://adodb.org/dokuwiki/doku.php
PHP Image Resize: https://github.com/gumlet/php-image-resize
Tembel Router: https://github.com/libreajans/tembel-router