04.Symfony Eklentiler

04.Symfony Eklentiler

Gerçek anlamda Symfony Framework üne bu yazımızda giriş yapacağız. Bir önce ki yazımda http://www.symfonydemo.com/ adresine gitmiştik ve bizi bir adet Welcome Sayfası karşılamıştı. Henüz kurulumu yeni yaptığımız için, henüz hiç Controller dosyamız olmadığı için bu sayfa symfony tarafından otomatik oluşturuldu. Symfony e giriş yapmadan önce hala yapmamız gereken bir kaç ufak değişiklikler. Bunlardan birtanesi kullandığımız IDE yi yani PHPStorm u ayarlamak. Bu ayarları yaptıktan sonra size kullanışlı Symfony Eklentiler inden bahsedeceğim. Ve bu Symfony Eklentiler inden bazılarını projemize dahil edeceğiz. Sonda söyleyeceğimi başta söyleyim, size tanıtacağım Symfony Eklentiler inden çok daha fazlası var, çok çok daha fazlası…


Symfony eklentilerini ikiye ayırabiliriz, bunlardan birincisi Symfony tarafından hazırlanan resmi eklentiler diyebiliriz. Bu Symfony Eklentiler e buradan ulaşabilirsiniz. İkincisi ise, diğer insanların hazırlamış olduğu Symfony Eklentiler i. Bunları da ihtiyacınıza göre zamanla zaten arayıp bulacaksınız. Buraya tıklayarak composer yardımıyla edinebileceğiniz, en popüler eklentilere ulaşabilirsiniz.

PHPStorm a Symfony Desteğini Ekleyelim.

PHPStorm u kurduysanız, varsayılan olarak Symfony desteği ile gelmez, Yapacağımız işlem son derece basit. Symfony desteğini verebilmesi için gerekli olan eklentileri PHPStorm a kuracağız. Aşağıda ki resimleri sırasıyla büyütün, ne yapmamız gerektiğini anlayacaksınız ama yine de ben yapılması gerekenleri yazim. Eğer Daha önce PHPStorm u hiç çalıştırmadıysanız. Girişte sizden projenizi ya oluşturmanızı yada daha önce oluşturduysanız, projenizin konumunu ister. PHPStorm daha önce açtıysanız ve daha önce proje oluşturduysanız, PHPStorm u her açtığınız da varsayılan olarak bu projeyi açar. Önce projenizi kapatın. Bunu yapmak için : File menüsünden, Close Project yazan yere tıklayın. Sonra sırasıyla;

  1. Sağ Alt kısımda bulunan Configure yazan yere tıklayın
  2. Açılan menüden Plugins i tıklayın
  3. Açılan pencereden Browse Repositories yazan yere tıklayın. (İlgili buton aşağıda ortada olacak.)
  4. Arama kısmına symfony yazın, sonuçların gelmesini bekleyin.
  5. Sonuçlar gelince de; Sırasıyla ; PHP Annotations ve Symfony Plugins eklentileri kurun.
  6. Kurulum bittikten sonra, PHPStorm u kapatın, Tekrar açın.
  7. Konumuzla alakası olmamakla birlikte, PHPStorm un Dracula temasını kullanmanızı tavsiye ederim. Sorun yaşayanlar aşağıda ki resimlere bakabilir.

PHPStorm ile Projemizi Açalım.

Bu işlem son derece basit. Open yazan yere tıklayın, Projenizin konumuna gidin ve seçin.(E:\Projects\Kitap).

Aslında Symfony Web Skeleton da bu Symfony Eklentiler in bir kısmı zaten var. Biz yine de kuracağız. Amacım size Symfony Eklentiler ini tanıtmak.

Symfony Eklentiler ni projemize dahil edilmesi

Symfony ile kullanabileceğiz eklentilerden biri, Filesystem, Dosya ve Dizin işlemleri için ideal. Esaslı bir proje için olmazsa olmazlarımızdan, Kurulumu ise son derece basit. PHPStorm da aşağı kısımda Terminal yazan yere tıklayın.
Dizin konumu olarak bizim proje dizinimizi gösteriyor, bildiğiniz Windows komutlarından CMD, o kısma aşağıda ki satırı yapıştırın, enter tuşuna basın.

composer require symfony/filesystem

Faydalı diğer eklenti ise Finder, Arama ve Bulma işlemlerinde kullanırız. Bir dizin içerisinde sadece resim dosyalarını yada sadece xml dosyalarını bulabiliriz. Yada bir dizin ve altında ki tüm dizinlerde bu tarz işlemler yapabiliriz. Filesystem ve Finder bir birlerini tamamlayan eklentilerdir.

composer require symfony/finder

Bir diğer Symfony eklentisi ise Form. Form biraz garip. ( Eklentide bir sorun yok ) Bazı insanlar nefret eder, Bazı insanlar çok sever, geriye kalanlarının ise kafası karışıktır. Bende ilk başlarda Form eklentisine karşı mesafeleydim. Ama ne yalan söyleyim, kullandıkça Bayıldım!

composer require symfony/form

PHP de ki var_dump ın karşılığıdır, ama daha kullanışlısıdır.

composer require symfony/var-dumper

Konsol komutlarını çağırmak için kullanırız.

composer require symfony/process

PHP ile Tarih, Saat işlemlerini rahatlık la yöntebileceğimiz bir eklentidir kendileri.

composer require nesbot/carbon

Sonuncusu ise Bundle, Assetic Bundle. İyi kullanırsanız çok sağlam bir Bundle dır. Ne yazık ki Symfony 4 te bu eklenti/bundle kaldırıldı yerine Symfony Webpack Encore geldi. Çok daha gelişmişi ama ne yalan söyleyim Assetic Bundle ı özlemiyor değilim 🙂


Symfony ‘nin Dizin Yapısı

Yanda ki resme tıklayın ve büyütün. Resme tıkladığınızda varsayılan olarak Symfony Dizin ve Dosyalarını(Dosyalardan bir kısmını) görürsünüz. Önemli bir iki dosyayı tanıtıp dizin yapısı hakkında size bilgi vereceğim. Mevcut hali ile bu gördükleriniz en minimumu.

Yukarıda da belirttiğim üzere ileride buraya fazladan dosya yada dizin gelecektir. Örneğin bir üyelik sistemi yazmak ister isek eğer, src dizinin altına Security dizinini oluştururuz.(Zorunluluk değil.)
 

assets

Web sitemize ait assetlerimizi(css,js, sass,less ) tutulduğu dizin. Symfony Webpack Encore için kaynak dizindir. Webpack Encore css ve javascript dosyalarımızı sürekli izler ve biz bu dosyaları değiştirdikçe compile eder, public dizinine sıkıştırılmış şekilde atar.

bin

Çalıştırılabilir, uygulamalar burada bulunur. (Örn: bin/console)

config

Konfigürasyon ayarlarımız burada bulunur. Genelde projemize dahil ettiğimiz eklentiler yüklendiklerinde FLEX yardımıyla, ilgili eklenti için “gerekiyorsa eğer” bir konfigürasyon dosyası oluşturulur ve varsayılan ilk ayarları yapılır. Yukarıda da belirttiğim üzere projemizin konfigürasyon ayarları burada bulunur. Burada yaptığımız ayarlar PROJEMİZİN GENELİNİ etkiler. config dizininde packages adlı bir dizin bulunur. Symfony e eklenti yüklersek eğer, eklentimize ait konfigürasyon/ayar(yaml) dosyaları burada bulunur.
 
Yine aynı şekilde ileride bir Servis yazmak istersek eğer services.yaml dosyasını kullanırız. services.yaml önemli dosyalarımızdan birisidir. packages dizini içerisinde bulunan şu dosyalarda önemlidir: Veritabanı işlemlerimiz için doctrine.yaml, Migration işlemlerimiz için doctrine_migrations.yaml, Symfony genel ayarlar için framework.yaml, Rota ayarlarımız için routing.yaml, Üyelik sistemi yazmak istersek eğer security.yaml, Mail gönderme işlemlerimiz için swiftmailer.yaml, Sitemiz yada uygulamamız birden fazla dil destekleyecek ise translation.yaml ve son olarakta Twig ayarlarımızı yaptığımız(Örneğin hızlıca Bootstrap desteği verebiliriz) twig.yaml önemli dosyalarımızdandır.

public

Projemizin web root dizinidir. index.php, favicon ve benzeri diğer dosyalar burada bulunur. Tabi diğer assetslerimiz de burada bulunur.(Tüm css,js,image dosyalarımız)

src

Projemizin kaynak dizinidir. Controller, Model,View, dosyalarımız burada bulunur. İlk kurulumdan sonra, bir kaç ayar yaparız. Sonra ise, zamanımızın yüzde 90 burada(src) dizininde geçer.

templates

Symfony 4 te Twig Şablon dosyalarımız burada bulunur.

tests

Unit/Otomatik testler içindir.

vendor

Üçüncü parti uygulamalar bu dizinde yer alır. Örneğin FosUserBundle

translations

Eğer web sitemiz çoklu dil desteğine sahip ise, dil dosyalarımızın bulunacağı dizin.

var

Symfony tarafından oluşturulan dosyaların bulunduğu dizin ( Örn: cache, log vs )

.git

Açıklamaya gerek var mı ?


 

Bu yazımı burada sonlandıracağım. Bir sonra ki yazım Routing ( Rotalar ) üzerine olacak. Umarım bu yazı sizin için faydalı olmuştur. Bir sonra ki makalemde görüşmek üzere.


Yukarıda ki tüm Symfony Component lerini tek seferde kurmak için aşağıda ki kodu çalıştırabilirsiniz;

composer require symfony/filesystem symfony/finder symfony/form symfony/var-dumper symfony/process nesbot/carbon