02.Symfony Nedir | Symfony Framework – Giriş

02.Symfony Nedir | Symfony Framework – Giriş

Sözdizim (Syntax) ı bir kenara bırakırsak bildiğiniz üzere PHP bileşenlerden oluşur. Türler(Types:String,Array,Object,Booleans, Integers vs), Değişkenler(Variables), Sabitler(Constants), Oparatörler(Operators), Kontrol Yapıları(Control Structures), Fonksiyonlar(Functions), Nesne ve Objeler(Classes and Objects) bunlara örnek verilebilir. Frameworkler ise bu PHP bileşenlerini en hızlı, en iyi, en esnek şekilde bir araya getirmeye çalışırlar. Symfony ‘nin resmi sitesine girerseniz, kendini title da tek cümle ile şöyle tanımlar “Symfony, High Performance PHP Framework for Web Development” yani “Web Uygulamaları İçin Yüksek Performanslı PHP Frameworkü
 

Symfony Nedir?

Yukarıda çok basitçe tanımladık, Web Uygulamaları İçin Yüksek Performanslı PHP Frameworkü. Biraz daha açarsak Symfony Nedir sorusuya faha farklı yanıtlarda verebiliriz.

  1. Symfony PHP Bileşenler seti ‘dir
  2. Web Uygulama Framework ‘ü dür
  3. Bir felsefe ‘dir
  4. Bir topluluk ‘dur

Yukarıda ki bu dört maddeyi toplayın ve “Tümü birlikte bir uyum içerisinde çalışan” ı ekleyin. Evet gerçekten de Symfony bu.”Symfony, Tümü birlikte uyum içinde çalışan PHP bileşenlerinden oluşan ve felsefesi olan  bir topluluktur.” İlk paragrafta yaptığımız tanımlamayı, burada ki yaptığımız tanımlama ile birleştirecek olursak Symfony Nedir sorusuna yanıt bulmuş olacağız ;



Symfony 4

Symfony 4.0, için bazı gereksinimleri karşılamanız gerekir. Bunlardan birincisi ve en önemlisi PHP 7.1.3 veya üstü. Test ortamınızda/bilgisayarınızda yada sunucunuzda PHP 7.1.3 kurulu olmalıdır. Eğer PHP 7.1.3 kurulu değil ise ve kurmak istiyorsanız ve de İşletim Sisteminiz de Windows ise size XamPP ı öneririm.(WamP değil!). Verdiğim linkten XamPP ın sitesine gidebilir, size uygun olan sürümü indirebilirsiniz. 23.04.2018 tarihi itibariyle XamPP ta en güncel sürüm 7.2.4 / PHP 7.2.4 sürümüdür. Ben bunu kuracağım. ( XamPP Sitesine Gitmek İçin Tıklayın ) Ayrınca İşleri kolaylaştırmak için Symfony, sisteminizin tüm bu gereksinimleri karşılayıp karşılamadığını kontrol etmek için bir araç sunar. Kontrol işlemini başlatmak için aşağıda ki komutu çalıştırabilirsiniz. Böylece sistemimizin Symfony 4 için gerekli yeterliliğe sahip olup olmadığını öğrenebilirsiniz.

Symfony Basit, güçlü, harika!

 

composer require symfony/requirements-checker

 

Yukarıda ki komutu çalıştırırsanız eğer Symfony public dizinin de check.php adlı bir dosya oluşturur. Daha sonra bu dosyayı browser ile ziyaret etmelisiniz. Kontrol işleminiz bitti ise, aşağıda ki komutu çalıştırabilirsiniz.

 

composer remove symfony/requirements-checker

 
Tüm bu işlemleri PROJE dizininizde yapmalısınız.

Yada

Bunlarla uğraşmak istemiyorsanız, ön hazırlığınızı BenVeAlem e göre yapabilirsiniz. Nelerin gerekli olduğunu aşağıda sırasıyla yazacağım;

  1. Bilgisayarınız da varsa eski sürüm WamP yada XamPP, kaldırın.
  2. Bilgisayarınız da varsa composer kaldırın.
  3. Eğer bilgisayarınızda daha önce WamP yada XamPP ve composer yüklü ise, kaldırma işleminden sonra bilgisayarınızı yeniden başlatın. Eğer daha önce hiç kurmadıysanız, bilgisayarınızı yeniden başlatmanıza gerek yok. Aşağıdan devam edin.
  4. Symfony 4 için Bilgisayarınız da en az PHP 7.1.3 sürümü kurulu olmalıdır. Kurulu değil ise yukarıda verdiğim XamPP bağlantısını tıklayın ve gerekli sürümü(son sürümü php 7.2.x) kurun.
  5. Composer programını tekrar indirin. Tekrar kurun. Az önce composer kaldırdık çünkü, eski kurduğumuz php.exe nin yolunu tanıdığı için, çalışmayacaktı. ( Composer i İndirmek İçin Tıklayın)

İlk etapta tüm yapmamız gerekenler bunlar. Bu işlemleri yaptıysanız aşağıdan devam edebiliriz.

Symfony ‘nin Yapısı

Symfony frameworkü Symfony Bileşenleri(Symfony Components) denilen, bağımsız ve yeniden kullanılabilir bileşenlerin üzerine inşa edilmiştir. Dilersek bu Symfony Bileşenlerini kendi uygulamalarımızda frameworkten bağımsız kullanabiliriz. İşte size bir kaç Symfony bileşeni : Asset, Filesystem, Finder, Form, Guard, HttpFoundation, Process, Routing, Security. Yeri geldikçe ve zaman buldukça size Symfony bileşenlerini tanıtacağım. Tabi ki yazdıklarımdan fazlası var. Bileşenlerin detaylı listesine ulaşmak için Resmi Sitesine bakabilirsiniz.


 

Symfony Versiyonları

Bu yazıyı ilk yazdığımda Symfony de 2x ve 3x adında 2 sürüm vardı. 30 Kasım 2017 de Symfony 4x ve FLEX yayınlandı. Bu nedenle daha önce yazdığım tüm Symfony makalelerimi yeni sürüme göre güncelliyorum. 30 Kasım’dan itibaren benim için Symfony 4x öncesi sürümler öldü. Eğer Symfony 3x ile geliştirdiğiniz bir projeniz var ise, çok fazla “php deprecated” hatası almıyor iseniz, size tavsiyem projenizi Symfony 4x e yükseltmeniz. Symfony 4x ve FLEX epeyce değişiklikler içeriyor. Aslında başlı başına bir yazı konusu olabilir. Lakin ben yazmayacağım.


Symfony Platformları/Türleri

Yukarıda belirttiğim üzere Symfony versiyonu 4x olarak belirledik. 4x ten eski sürümleri de öldürdük. Burada ise kurulum yapacağımız türü/platformu belirleyeceğiz. Hoppala bir de tür mü var demeyin. Var. Aslında iyiki de var. Aşağıda açıklayacağım.


Symfony API Platform

Bu platform/tür API First için yaratıldı. Yani sadece API işlemleri yapmak istiyorsanız, sizin için uygun olan sürüm bu. İlk satırda belirttiğim üzere API için yaratılmış platform/tür. Daha da açacak olursak eğer. Symfony API Platformu, API ilk projeleri için bir Açık Kaynak web frameworküdür. API’nin veri modelini tanımlayın veya Schema.org’dan mevcut bir dosyayı içe aktarın ve REST işlemleri, veri doğrulama, sayfalama, sıralama, filtreleme, Swagger belgeleri, yetkilendirme sistemi, ve benzeri diğer işlemleri çok rahat yazın. Bir API için ne gerekiyorsa sizin için hazır halde. Aşağıda ki şekilde kurulur.( Siz kurmayın )

composer require api

Symfony Microservices

Bu platform/tür Konsol uygulamaları, Apiler, mikro uygulamalar geliştirmek için hazırlandı. Symfony Mini diye düşünebilirsiniz. Gerçekten de öyle, Symfony nin en yalın versiyonu. Varsayılan olarak, twig yok, filesystem, finder, annotation desteği, annotation ile rota desteği vs YOK. Bu sürümü alıp, istediğiniz eklentileri kurarak devam edebilirsiniz. Her ne kadar bu platform/tür Konsol uygulamaları, apiler, mikro uygulamalar geliştirmek için hazırlansa da, üzerine eklentiler kurularak web uygulamaları geliştirebilirsiniz. Kurmak için aşağıda ki kodu çalıştırmalısınız.(Not: Bunu da kurmayın)

composer create-project symfony/skeleton my-project

Symfony Website Skeleton

Bu platform/tür geleneksel Web Siteleri – Web Uygulamaları için geliştirilmiş ve optimize edilmiş symfony platformu/türüdür. Bir web uygulaması için ihtiyaç duyabileceğimiz birçok şey hazır halde geliyor. Bizde bunu kuracağız.(Henüz Kurmayın)

composer create-project symfony/website-skeleton PROJE_ADINIZ

 

Symfony ‘nin Dizin Yapısı

Symfony 3 ‘yi kurduğunuzda varsayılan olarak 7 dizin ile birlikte geliyordu. Symfony 4 ise 11 dizin ile gelir. Bu dizinleri kısaca açıklarsak.

assets

Web sitemize ait assetlerimizi(css,js, sass,less ) tutulduğu dizin. Symfony Webpack Encore için kaynak dizindir.

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.

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 3 Twig Şablon dosyaları Resource dizininde view klasöründe idi, Symfony 4 te ise 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ı ?


Symfony ve IDE

Symfony için bir IDE zorunluluk mu “Hayır” zorunluluk değil bu nedenle dilerseniz kullanmaya bilirsiniz. Açar Notepad i orada da yazarsınız. Bazı insanların IDE lere karşı önyargıları var. Ben IDE lerin kullanılması taraftarıyım. Symfony ile birlikte Eclipse PDT, Sublime Text ve PHPStorm kullandım.  Bu üçü de hala bilgisayarımda yüklüdür. Yeri geldiğinde Sublime yada Eclipse PDT de kullanmıyor değilim ama PHPStorm a gelince PHPStorm sanki özellikle Symfony için yapılmış. Nedenini bilmiyorum ama bende böyle bir his oluşturuyor. Bana kalırsa Symfony için şuan en iyi desteği sunan editör.



Eclipse PDT ye şuan adını hatırlamadığım bir eklenti ile Symfony desteği verilebiliyor. Bir süre kullandım lakin PHPStorm gibi değil. Symfony diyince size önereceğim IDE kesinlike PHPStorm.

 

PHPStorm

PhpStorm çapraz platform bir PHP tümleşik geliştirme ortamıdır (IDE). İlk olarak 2009 yılında yayınlanmıştır  JetBrains firması tarafından geliştirilmiştir. Ileri düzeydebir IDE olduğundan bir kısım ayarları yapmanız gerekiyor. Henüz PHPStorm ile hiç tanışmadıysanız, ve  kendisine bir şans verirseniz; büyük ihtimalle çok seveceğinize eminim. Her ne kadar isminde PHP geçse de aslında bir kaç ayarla dört dörtlük Web Geliştirme ortamdır AngularJS, jQuery, CSS, SQL kod tamamlama yapabiliyor. Kısaca özelliklerinden basedecek olursak;

  • Eklenti ile gördüğüm en iyi Symfony desteğini veriyor.
  • Eklenti havuzu mevcut, eklentilere bakıp dilediğiniz eklentiyi kurduğunuzda PHPStorm u daha akıllı hale getirebiliyorsunuz.
  • PHP, HTML, JavaScript, CSS …. kod reklendirme.
  • Kod Tamamlama. Bir kaç ayarla neredeyse web için ne gerekiyorsa hepsini tamamlayabilir(PHP,HTML,CSS,jQuery,AngularJS vs ). Tamamlayamıyor ise, eklentilerine bir göz atın 🙂
  • PHPDoc desteği
  • Endüstri standardı dosya uzantılarını destekliyor. Hemen hemen bir çok dosyaya destek veriyor. (css,html,json,xml,twig,php,TypeScript,JavaScript,Less,Sass,CoffeeScript, SQL gibi..) . Yaz yaz bitmiyor 🙂 Dilerseniz desteklediği dosyalar için resmi sitesine bakabilirsiniz. File Types Recognized by PhpStorm
  • xDebug ve Zend Debug desteği.
  • VCS desteği ( SVN, Git, Mercurial vb. )

Aslında özellikleri bu yazdıklarımdan fazla ben bir kaç tanesini yazdım. Bizim konumuz Symfony ve Symfony için önerilen editör PHPStorm. Nedenine gelince PHPStorm da Symfony için bir eklenti(Plugin) var ve bunu yüklediğiniz de Symfony framework ü PHPStorm tarafından full destekleniyor. Burada full derken Symfony kod tamamlama, quick-fixes, Twig template, service container, Doctrine, translations, routes, forms, events, Symfony command line tool, code style vs . Bu kısmı daha fazla uzatmamak adına, Symfony için önereceğim IDE, kesinlikle PHPStorm dur.

 

Başka nelere ihtiyacımız var?

Özetlersek;

  1. PHP Framework e ihtiyacımız vardı, Symfony 4
  2. Bir IDE ye ihtiyacımız vardı PHPStorm
  3. PHP kütüphanelerinde bağımlılık sorunlarını gidermek ve Symfony için yazılmış eklentileri ( Yada diğer frameworkler için ) kurmak için Composer
  4. İşletim sistemi.( Windows Mac Ubuntu vs farketmez. Kendinizi hangisinde daha rahat hissediyorsanız )
  5. Web sunucusu. (PHP+Apache+MySQL). Tek tek el ile kendiniz de kurabilirsiniz yada XamPP gibi hazır olanları da kullanabilirsiniz.( Hatırlayın, Symfony için PHP 7.1.3 veya daha üstü bir sürüm kullanmalısınız. )
  6. GİT. Sanırım ne olduğunu biliyorsunuz. Bilgisayarınızda kurulu değil ise, Bu adresten işletim sisteminize uygun olan GIT uygulamasını indirip kurunuz. https://git-scm.com/
  7. GIT i kurduktan sonra, TortoiseGit i kurun. TortoiseGit Resmi Sitesi
  8. Heycan!

PHPStorm u ücretsiz 30 günlük deneme sürümünü kurabilirsiniz. Beğenirseniz yıllık alabilirsiniz yada benim gibi ayda 9 dolara lisanslı olarak kullanabilir aylık olarak lisansınızı yenileyebilirsiniz. PHPStorm u henüz yüklemediyseniz resmi sitesinden 30 günlük deneme sürümünü indirebilirsiniz. PHPStorm Resmi Sitesi


Composer Resmi Sitesi ve XamPP Resmi sitesi Bu sitelerden Composer ve XamPP ı indirip kurabilirsiniz. Önce XamPP ‘ı kurunuz. Daha sonra bir kere bilgisayarınızı yeniden başlatın. XamPP’ı kurduktan sonra Composer ‘i kurun.



Kurulumu bir sonra ki yazıya bıraktık. Bu yazımda kısaca Symfony 4 ü tanıdık.