Genel olarak kendi sınıflarını yazan kişilerin çoğu tek tek require etmemek için spl_autoload_register işlevini kullanır ama eğer composer ile bir şeyler dahil edecekseniz new ile sınıfı dahil ettiğiniz anda spl_autoload_register çalıştırdığı fonksiyon da bu isime ait dosyanın require edilmediğini görüp hata verecektir.
Aslında önüne geçmesi çok basit composer’dan önce büyük ihtimalle şu şekil’de kullanıyordunuz;
Composer windows cihazlara rahat şekilde kuruluyor uğraşmıyorsun ama mac cihazlarda maalesef o kadar basit olmuyor.
Öncelikle ben 03-11-2020 Tarihine göre anlatıyorum kurulum şekli değişmiyor tabi ki sadece içeren kodlar da küçük değişiklikler olabilir o yüzden sitesine uğramayı unutmayın. Güncellemeler ve değişiklikleri takip etmeniz için.
Şu anda hiç bir hata almadı iseniz kurulumu gerçekleştirdiniz zaten mac üzerine kuran herkes bu aşamaya kadar geliyor.
php composer.phar --version
Terminal üzerine bu kodu yazıp return edin çıktı olarak Composer Version x.x.x şeklinde verdi ise kurulum başarılıdır.
6. Aşama:
Asıl mevzu bundan sonrası şimdiye kadar yerel bir kurulum yaptık bizim bu composerı global olarak kurmamız gerekiyor ki her seferinde composer diyerek erişebilelim.
Bunun için yapmamız gereken tek şey şu kodu yazmak
mv composer.phar /usr/local/bin/composer
7. Aşama:
command not found: mv.composer.phar diye hata aldı iseniz okumaya devam edin eğer bu hatayı almadı iseniz sizin işleminiz bitmiştir. global olarak kurdunuz artık composer diyerek erişebilirsiniz. Fakat söylediğim hatayı aldı iseniz okumaya devam edin.
Bu hatanın sebebi usr/local dizinin’de bin adlı bir klasörün var olmaması bu yüzden bu klasörü siz manuel olarak oluşturacaksınız.
Terminal ekranına dönün ve şu kodu yazın.
mkdir /usr/local/bin
8. Aşama:
Eğer bunu yazdıktan sonra mkdir: /usr/local/bin: Permission denied hatası aldı iseniz.
Sizin işiniz hala bitmedi okumaya devam edin.
bu hatayı almayan kişiler ise 6. Aşamaya dönsün ve o kodu tekrar yazsın. composeri global olarak kurmuş olacaktır.
Terminalı açın ve aynı kodu bu kez sudo izni ile yazacağız.
sudo mkdir /usr/local/bin
9. Aşama:
Sizden şifre isteyecektir bu şifre oturum şifrenizdir şifrenizi girip return edin şifrenizi yazarken terminal ekranında şifreniz görünmeyecektir. Yani siz yazıp return edin sadece.
Şimdi bin klasörünü oluşturduk sıradaki yapacağımız işlem composer dosyasını taşımak bunun için tekrar terminal ekranına dönün ve şunu yazın.
mv composer.phar /usr/local/bin/composer
10. Aşama:
Eğer hiç bir hata almadı iseniz composer global olarak kurdunuz fakat mv: rename composer.phar to /usr/local/bin/composer: Permission denied diye bir hata aladı iseniz terminal ekranına dönün gene sudo izni ile şu şekilde yazın.
sudo mv composer.phar /usr/local/bin/composer
Son:
Bu kadar composer global yaptınız. Eğer bu aşama da gene password ister ise gene oturum şifrenizi girersiniz istemez ise direkt kurdunuz demektir. Şimdi test edelim bakalım global olarak taşıdık mı?
composer --version
çıktı olarak Composer Version x.x.x şeklinde verdi ise kurulum başarılıdır.
Foruma kayıtlı değilseniz kayıt olup yorum yapmayı kayıtlı isenizde beğenip yorum yapmayı unutmayın.
Üzerinde çalıştığım proje de yaşadığım bir sorun vardı local üzerinde çalışırken bunu fark etmemiştim fakat sunucuya aktardığımda sayfa yüklenme süresi 2-3 saniyelere çıkmıştı sebebini anlayamadım.
Buna sebep olan olayı bulmak için yaklaşık 2 saat uğraştım saçma şekilde sebep olan şey file_get_contents fonksiyonudu.
Önemli olmayan genel ayarlarımı json olarak tutuyorum ve bu dosyaları file_get_contents fonksiyonu ile çağırıyordum. 5-10 Tane dosya da bu hız farkını çok hissetmiyorsunuz fakat benim gibi bir çok sayfayı yüklüyorsanız bunu hissediyorsunuz.
Bende alternatif çözümler aradım ve şu an kullandığım yöntem ile 3 saniye geçikme süresini 0,0080 saniyeye düşürdüm yani katlarcasına hız farkı çıktı ortaya.
Ben dediğim gibi bunu json dosyalarım için kullanıyorum normal şartlarda kullanma şekli json_decode(file_get_contents("siteadresi.com/json/jsondosyasi.json"),true) bu şekildeydi fakat aşırı derecede hosting’e attıktan sonra bunu fark ediyorsunuz bu arada.
Ağırlaştığı için alternatif bu yöntemi türettim deneyin hız farkına şaşıracaksınız.
Merhaba arkadaşlar SSL serfitikası olduğu halde güvenli değil sorunu olanlar bilir eğer kullanıcılara url girdiriyor ise platform kullanıcılar SSL serfitikası olmayan sitelerin linklerini girdiği zaman o link’de https güvenli görünmeyecektir.
Bunu genellikle forumlar tanıtım siteleri kullanıyor neden bahsediyorum şu şekil’de örnek ile açıklıyorum. Resmin kaynağı imagevisit olsun.
Resim Kaynağı : https://www.imagevisit.com/images/2017/08/28/bucurcin.jpg
benim paylaşacağım proxy’de bu şekil’de olacaktır.
Kendi kişisel web sitemde kullanıyorum bu özelliği kendim için hazırladığım bu dökümanı yararlı olabileceğini düşündüğüm için paylaşıyorum.
Sistem belli zaten get ile gelen url adresini htmlspecialchars ile temizliyor trime sokarak boşlukları siliyor daha sonra kontrol yani get_headers ile gelen linke bakıyor kontrol[0] ile get_headers’da dizi halinde değer proxy bilgileri arasında ilk olan http 1.1 200 ok dönüyor ise böyle bir dosya var yok ise else dönüyor else’de de zaten hatalı resim img dönüyor mantığı basit yani bu size şunu sunuyor normalde resim linkini böyle girersiniz.
Bu bizzat benim bile çok fazla ihtiyacım olan bir şey ezberlenmeyecek kadar uzun bir şey olmasa da bu tür fonksiyonlar ve terimler akılda tutulması zor oluyor sürekli yazmadığımız için akıldan çıkıyor görünce böyleymiş desek bile sonuçta önce görme isteği duyuyoruz.
PHP’de tarih fonksiyonları siz çevirmediğiniz sürece ingilizce kalmaktadır. Bu vereceğim kod varsayılan dili türkçe olarak belirtip tarihi size türkçe olarak çıktı yapmaktadır.
Öncelikle local dilimizi türkçe olarak belirtelim bunu sayfanızın başına yazın
setlocale(LC_TIME,"tr_TR.UTF8");
daha sonra ise tarihi gün ay şeklinde yazılı nasıl yazdırırız onu göstereyim.