Categories
PHP Programlama Yazılım

PHP’de PDO ile Veritabanı İşlemleri

PDO veritabanlarına bağlanmamıza yarayan bir API‘dır. (Okunuşu : AyPiAy, İng. Application Programming Interface, Tr. Uygulama Programlama Arayüzü) Bilgisayarımızda işletim sisteminin donanımlara ulaşmasını sağlayan yazılımlara driver denir. PDO API’ını buna benzeterek veritabanlarıyla iletişim kurmamızı sağlayan bir driver olduğunu söyleyebiliriz. Her veritabanı işleminde veritabanı bağlantımzı kurmalıyız.

Bunun için bir DSN (Okunuş: DiEsEn, Ing. Data Source Name, Tr. Veri Kaynağı Adı) yazmamız gerekiyor ki PDO verileri hangi sunucu, port ve veritabınından (PDO MySQL dışında farklı veritabanlarını da desteklemektedir.) çekeceğini anlasın.

Categories
PHP Programlama Yazılım

PHP’de Kullanıcı Tanımlı Geri Çağırma (Callback) Fonksiyonları

PHP’de sık sık geri çağırma fonksiyonlarını array_map(), array_filter() ve array_reduce() gibi fonksiyonlarını kullanıyoruz. Peki bunların nasıl çalıştığını hiç merak ettiniz mi? Bu yazıyı okuduğunuza göre merak ettiniz. Tamam o zaman başlıyorum. Siz kaşındınız…

Categories
PHP Yazılım

PHP İLE NESNE TABANLI PROGRAMLAMA NOTLARI

Nesne yönemli programlama genelde kısa adı olan OOP (İng. Object Oriented Programming) ile anılmaktadır. OOP için biz ölümlülerin karmaşık projelerdeki sıkıntılı olayları gerçek hayata yakınsayarak çözme çabası desek herhalde sürçülisan etmeyiz.

Bu olay biz geliştiricilerin hayatını o kadar kolaylaştırıyor ki anlatırken kendimi Eminönü’nde turistlere mal satmaya çalışan esnaf gibi hissediyorum. – @haydar

Bu yaklaşımı anlatırken hayvanı korkutmamak adına tümevarım tekniğini kullanacağım. 😀 Korkmayın dinozor avlamak kadar zor değil. :

Categories
Açık Kaynak İşletim Sistemleri PHP Programlama Yazılım

Ubuntu’da PHP Geliştirme Ortamı Kurmak 2021

Bu yazıyı yazdıktan sonra biraz Docker kullanma fırsatım oldu. Sonunda şu karara vardım; Docker kullanmak varken aşağıda anlattığım yolu izlemek büyük saçmalık. Oturun iki üç gün Docker öğrenin hayatınız kolaylaşsın.


Kurulumuna başlamadan önce kullanacağımız alet çantasına bir bakınalım. Bu yazıda bir LEMP stack tabanlı yani Linux, Nginx, MySQL ve PHP yığınının kurulumunu anlatacağım.

  • Nginx : Özetle kullanıcıdan gelen istekleri yönetmeye yarayan web sunucu yazılımı. Apache kullanımı günden güne düştüğü için seçimimi Nginx tarafında kullandım.
  • MySQL : Açık kaynak kodlu ilişkisel veritabanı.
  • PHP : Geliştirme yapacağımız yazılım dili.
  • Curl : Çeşitli protokolleri kullanarak veri transferi yapmaya sağlayan yazılımdır.
  • Composer : PHP paketleri için paket yönetimi yazılımı.
  • Git : Sürüm kontrol sistemi.
Categories
Açık Kaynak PHP Programlama

Gnu/Linux’da PHP Ayıklama(Debugging)

Yazılım yapısı gereği karmaşık bir iştir. Bu nedenle yazdığımız yazılımın sonucunda belmediğimiz hatalarla karşılaşabiliriz ve bazen hata mesajları tek başına bir şey ifade etmez. Her adımı var_dump() ve print_r() ile yazdırmakta çok kullanışlı değildir.

PHP derlenen (compiled) değil yorumlanan (interpreted) bir programlama dilidir. Bundan dolayı çoğu geliştirme ortamında (IDE) ayıklama (debugging) özelliği varsayılan olarak gelmez. Bu nedenle bir ayıklama aracı yüklememiz gerekiyor. Bu yazıda bu konu en popüler debug aracı olan Xdebug ile Nginx+ Visual Studio Code yapılandırmasında anlatılıyor. Dilerseniz anlatılanları kendi yapılandırmanıza uyarlayarak kurulumu gerçekleştirebilirsiniz.

Categories
Laravel PHP Programlama Yazılım

Windows Ortamında Laravel Task Scheduler ile Çalışmak

Bir Web uygulaması geliştiriken yaşanan en büyük sıkıntılardan biride cron joblarların versiyon kontrol sistemine dahil edilemiyor olması. Bunun için Laravel’de tek cron job ile tüm zamanlanmış görevlerin yapılmasına olanak sağlayan bir sistem bulunuyor.Bu sistemi Windows test ortamında cron job olmadığı için bunu bir şekilde benzetim yaparak halletmeniz gerekiyor. Bunun için araştırma yaptığımda ilgili StackOverFlow makalesine ulaştım. Anladım ki bu işlemi Windows görev zamanlayıcısı (Windows Task Scheduler) ile halledebiliriz. Bunun için öncelikle not defteri açıp aşağıdaki kodları kendimize göre düzenleyip .bat olarak herhangi bir yere kaydedelim.

Categories
Laravel PHP Programlama Yazılım

Laravel’de getID3 Paketi ile Dosyalardan Metadata Çekmek

Bildiğiniz composer (Besteci, bestekâr demek aynı zamanda ) paket yönetici sağolsun pek çok php kütüphanesini kendi projemize tereyağından kıl çeker gibi ekleyebiliyoruz. Bu yazıda bunlardan biri olan getID3 paketini kullanacağız.

Categories
Laravel PHP Programlama Yazılım

Laravel’de MP3 Dosya Tipi Doğrulaması (Validation)

Her ne kadar Laravel frameworkünün belgelendirmesinin ne kadar iyi olduğu ile övünsekte bazen bazı eksiklikler gözümüzden kaçmıyor değil. Bir proje için serverda dosyaya mp3 doğrulama işlemi yapmam gerekti. Bunun için mimes: kuralını uyguladım yani ;

$this->validate($request, array(
                'audio'=>'required|mimes:mp3,m4a,mp4,m4r',
            ));
Categories
Açık Kaynak İşletim Sistemleri Yazılım

Ubuntu’da Etkin Ekran Görüntüsü Kaydetme

Ubuntu kullanırken en çok aradığım yazılımlardan biride sadece Windows ortamını destekleyen Lightshot isimli ekran görüntüsü alma aracıydı. Temel ekran kaydetme işleminde tüm ekran kaydedilmesine rağmen bu yazılımla ekranın sadece istenilen bölgesi işaretlenip sabit disk yerine direk panoya (clipboard) kopyalayabiliyor veya internete yükleyip bağlantısını bize verebiliyor. Ayrıca işaretlenen bölge üzerinde basit sansürlemeler üzerini çizmeler, işaretler yapılabiliyor. Sitesinde yazılımın direk Linux sürümleri için çıkartılan bir paketinin olmadığını ama istenilirse Wine ile yüklenebileceği yazıyor. Buna rağmen wine ile yüklemek başarılsa bile uyumluluk sorunları nedeniyle kullanımı Windows’daki rahatlığı vermiyordu. Linux için bu tarz bir araç ararken karşılama Flameshot çıktı. Flameshot tam olarak tüm ihtiyaçlarımı karşılıyor. Hatta Lightshot’dan bile daha iyi olduğunu söyleyebilirim.

Categories
Laravel PHP Programlama Yazılım

Laravel Eloquent Event Kullanımı

Laravel veya herhangi bir framework kullanırken mutlaka event (olay) ve listener (dinleyici) mantığına ihtiyaç duyuyoruz. Eğer Laravel kullanıyorsanız işinizi kolaylatıracak bir tüyo vermek istiyorum. Bu yazının devamında kullanacağımız kısımlar için Laravel’in event/listener yapısını biliyor olmanızı öneririm. Eğer bilmiyorsanız buradan resmi belgelendirmeden yararlanabilirsiniz.