php | CodeWK https://codewk.com Sınırsız bilgi ve çok eğlenceli ! Fri, 05 Jul 2019 14:41:33 +0000 tr hourly 1 https://wordpress.org/?v=6.1.6 https://codewk.com/wp-content/uploads/2019/02/cropped-favicon-32x32.jpg php | CodeWK https://codewk.com 32 32 Linux Sunucularda PHP.ini Düzenleme Ve Güvenlik https://codewk.com/linux-sunucularda-php-ini-duzenleme-ve-guvenlik/ https://codewk.com/linux-sunucularda-php-ini-duzenleme-ve-guvenlik/#respond Fri, 08 Mar 2019 21:33:05 +0000 https://codewk.com/?p=1559 PHP Nedir ?

Bir Sunucuda PHP uzantılı dosyaların çalıştırılabilmesi için gerekli olan yazılımlar/paketler yüklendikten sonra projenize bağlı olarak bazı değişiklikler yapmanız gerekebilir. Örneğin web sitenizde bir dosya yükleme alanı varsa buradan yüklenecek dosya boyutunu izinler dosyasından değiştirmeniz gerekebilir.

İşte bu ve bunun gibi önemli PHP ayarların barındırıldığı özel ayar dosyası php.ini dosyasıdır.

PHP.ini Dosyası nasıl düzenlenir ?

Bu makalede yer alan php.ini düzenlemesini tüm Linux VPS sunucularda gerçekleştirebilirsiniz.

cPanel, Directadmin, Plesk sunucular için php.ini yolu şu şekildedir ;

 /usr/local/lib/php.ini 

Eğer php.ini yolunuzu öğrenmek isterseniz şu komutu ssh üzerinden çaılştırmanız gerekiyor ;

$ php -i | grep php.ini

Yukarıda Gördüğünüz gibi yol ekrana gelecektir.

php.ini dosyamızı nano editör ile açalım ;

nano -w /usr/local/lib/php.ini

PHP.ini içerisinde istediğiniz değerleri bularak sunucu kaynaklarımıza veya scriptinizin ihtiyacı oranında yükseltelim ve kaydedelim.

Ardından apache veya nginx kullanıyorsanız nginx servisini ayarlarımızın yapılandırılması için son olarak baştan başlatıyoruz ;

service httpd restart & service httpd restart

Tebrikler Artık Linux Sunucularda PHP.ini düzenleyebiliyorsunuz. 🙂

Linux Sunucularda Güvenlik

1. Kernel

İlk olarak Kernel Sürümünüzü Güncel Tutmanız sizi bir çok sistem açığından koruyacaktır.

Peki Kernel Nasıl Güncellenir ?

Bu site üzerinden en güncel kernel sürümünü indirin.

Arşivden çıkarma işlemi

$ unzx -v linux-4.19.tar.xz
ya da
$ xz -d -v linux-4.19.tar.xz

Yapılandırma ayarlarları

$ cd linux-4.19
 $ cp -v /boot/config-$(uname -r) .config

Örnek çıktı:

'/boot/config-4.15.0-30-generic' -> '.config'

Gerekli geliştirici araçları yükleme

$ sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev

Kernel’i Yapılandırma

Kaynak kodların olduğu yerde aşağıdaki komuntlardan gerekli olanı yazıyoruz:

  • $ make menuconfig — Grafiksel arayüz ile yapılandırma
  • $ make xconfig — KDE Masaüstü ortamları için ideal yapılandırma
  • $ make gconfig — Gnome Masaüstü ortamları için ideal yapılandırma

Örnek komut kullanım şekli:
$ make menuconfig

Eğer make komutu bulunamadı hatası gelirse “sudo apt-get install make” ile indirmeniz gerekmekte !

Kernel’i Derleme

Sıkıştırılmış kernel imajını derlemek için alttaki komutu yazın:
$ make

Derleme hızını arttırmak için -j ile birden fazla çekirdek kullanabiliriz:
## use 4 core/thread ##
$ make -j 4
## get thread or cpu core count using nproc command ##
$ make -j $(nproc)

Kernel Modüllerini Yükleme

Alttaki komutla kernel modüllerini yüklüyoruz:

$ sudo make modules_install

Kernel’i Yükleme

Kernel derleme işlemi de bittiğine göre artık kernel yüklene bilir:
$ sudo make install

Bu yükleme işlemi alttakileri /boot dizinine yükleyecektir:

  • initramfs-4.19.img
  • System.map-4.19
  • vmlinuz-4.19

Grub Yapılandırmasını Güncelleme

Grub2 yükleyicisinin yapılandırma ayarlarını yapmamız gerekmekte.

Bu komutlar isteğe bağlıdır. make install işlemi bu işlemleri zaten yapmış olacaktır. Yine de vermekte fayda var:
$ sudo update-initramfs -c -k 4.19
$ sudo update-grub

İşlemi Sonlandırma

Sistemi yeniden başlatma komutunu giriyoruz:
# reboot
Yeniden başlatıldıktan sonra, Linux Kernel Versiyon’unu kontrol ediyoruz:
$ uname -mrs

Örnek çıktımız:

Linux 4.19 x86_64

2. PHP “Disable Functions”

PHP.ini Düzenlemeyi göstermiştik en başta hatırlarsınız. Şimdi ise PHP.ini içerisindeki Disable Function yani “Kapalı Fonksiyonlar” için bazı değerler gireceğiz. Bunun sebebi ise Sistemdeki User’lerin erişimini kısıtlayarak saldırıları minimum’a indirmek.

Örnek Kod ;

disable_functions=exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

3. SSH Port’unu Değiştirmek

SSH portunu değiştirmek sunucu güvenliği için gerekli bir işlemdir.Kurulum sonrası varsayılan olarak gelen 22 portu veya sık kullanılan SSH portları sürekli bot’lar tarafından taranmaktadır.Sunucunuzun hacklenmemesi için bilindik ya da varsayılan portları kullanmamanızı tavsiye ederim.

nano /etc/ssh/sshd_config

komutu ile SSH ayarlarının bulunduğu dosyayı açıyoruz. Bu dosya içerisinde aşağıdaki şekilde portu belirten bir bilgi olacaktır.

sshport

Buradaki #Port 22 olan bölümü unutmayacağınız bir port ile değiştirebilirsiniz.Yeni gireceğiniz portun sürekli kullanılan ya da bilindik bir port olmamasına dikkat ediniz. Değişikliği yaptıktan sonra CTRL+X ve sonrasında Y tuş kombinasyonu ile dosyayı kaydedip çıkış yapabilirsiniz.Yapmış olduğunuz port ayarının aktif olabilmesi için son olarak sshd servisine restart atmanız gerekiyor.

/etc/init.d/sshd restart

4.Python ve Perl Güvenliği

Son zamanlarda cgi-telnet scriptleri ile sunuculara sızmaya çalışan ve ln ile hedef sitenin içerisine müdahale eden mudavimlerle dolu sanal ortam maalesefki . bu konuda aşağıdaki işlemleri uygulayarak kalıcı çözüm oluşturabilirsiniz.

nano /etc/httpd/conf/httpd.conf

Komutu ile apache konfigurasyon dosyasına erisim sağlayarak akabinde aşağıdaki satırı bulun ( kismi olarak bulunabilir addhandler diye aratabilirsiniz )

AddHandler cgi-script .cgi .pl .plx .ppl .perl

Daha sonra bu komutun başına bir sharp işareti ekleyerek etkisiz hale getiriniz.

Örn : # AddHandler cgi-script .cgi .pl .plx .ppl .perl

Daha sonra Perl Kütüphanesine erişimi engellemek için ;

chmod 710 /usr/bin/perl 

komutunu ssh üzerinde çalıştırınız . en son olarak apache ‘yi restart ediyoruz.

 /etc/init.d/httpd restart

Aynı işlemi Plesk için aşağıdaki komutlar ile gerçekleştirebilirsiniz.

chmod 700 /usr/bin/perl
 /etc/init.d/httpd restart & service apache restart

Artık Cgi-Telnet erişimi kapanmıştır. Bazı Cgi-Telnet bağlantıları python ile çalışmaktadır aynı işlemleri python kütüphanesi için yapabilirsiniz.

5. Veri Akışını kesmek

Kötü amaçlı kullanımlar için, örneğin basit icmp saldırılar için en güvenli yol sunucuyu dışarıdan ping’e kapatmaktır. Pingi kapatmak ddos saldırılarından bizi korumaz, yalnızca isteklere kapatır. Bunun sunucumuza veya site erişimlerine bir zararı yoktur hatta faydası vardır.

Ping i kapatmak için ssh ile login olduktan sonra nano komutu ile aşağıdaki kısıma erişiyoruz;

nano /etc/sysctl.conf

Daha sonra aşağıdaki komutu en alt satıra ekliyoruz, kaydedip çıkıyoruz;

net.ipv4.icmp_echo_ignore_all=1

Değişiklikleri uygulamak için aşağıdaki komutu çalıştırıyoruz;

sysctl -p

Farklı bir bilgisayardan alan adımızı veya ip adresimizi pinglediğimizde zaman aşımına uğrayacaktır.

Yeniden ping erişimine açmak istersek aşağıdaki komutu çalıştırıyoruz;

nano /etc/sysctl.conf

En aşağıda eklediğimiz satırı siliyoruz ve kaydedip çıkıyoruz.

Değişikliği uygulamak için aşağıdaki komutu çalıştırıyoruz.

sysctl -p

İşlemimiz bu kadar.

6. Fail2Ban

Fail2ban belirli servislere ait log dosyalarını takip ederek başarısız login girişimlerini tespit eder ve bu denemeler belirli bir sayıya ulaştığı zaman ilgili aktivitenin kaynak IP’si için Iptables’a bir drop kuralı ekler. Sisteminizde iptables yoksa ya da iptables kullanmak istemiyorsanız aynı şeyi tcpwrapper ile de yapabilir ve ilgili IP adresini hosts.deny dosyasına ekler. Ancak bu durum sadece tcpwrapper kullanan (örn: sshd) servisler için geçerlidir. Mesela apache tcpwrapper kullanmaz bu nedenle apache için iptables kullanmanız gerekir.

Fail2ban ile reject edilen IP adresleri için öntanımlı olarak 5 dakikalık bir ban süresi bulunmaktadır. Ban süresi dolan IP adresleri için girilen drop kuralları (ya da hosts.deny girdileri) sistemden kaldırılır. Sonuç olarak ban durumu kalıcı değildir ve süre sonunda ilgili IP adresleri tekrardan erişim sağlayabilirler.

Bunun yanı sıra, Fail2ban, banlanan ipleri mail yolu ile raporlayabilir; böylece sunucudaki aktivite ile ilgili bilgi edinebilirsiniz.

Bu kısa bilgilendirmeden sonra kurulum ve yapılandırma kısmına geçebiliriz.

Kurulumu kaynak koddan yapıyorum. Bu nedenle şimdi “/usr/local/src/” dizinine geçerek son “http://sourceforge.net/projects/fail2ban/files/” adresinden fail2ban’ın son sürümünü download edelim.

(Şu an son sürüm 0.8.4’tür. Siz download etmeden önce kontrol edin.)

# cd /usr/local/src # http://downloads.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/fail2ban-0.8.4.tar.bz2?use_mirror=ignum 

Şimdi tar.bz2 dosyasını açıp kurulumu yapmak için fail2ban dizinine geçiyoruz.

# tar xjvf fail2ban-0.8.4.tar.bz2 # cd fail2ban-0.8.4 

Kurulum aşağıdaki gibi setup.py scripti üzerinden yapılmaktadır.

# python setup.py install 

Yükleme işlemi bittikten sonra fail2ban binary dosyaları /usr/bin dizinine, yapılandırma dosyaları ise /etc/fail2ban dizinine konulur.
Ancak yapılandırmaya başlamadan önce fail2ban’ı sisteme servis olarak ekleyelim.

# cp /usr/local/src/fail2ban-0.8.4/files/redhat-initd /etc/init.d/fail2ban # chmod 755 /etc/init.d/fail2ban # chkconfig --add fail2ban # chkconfig fail2ban on 

Şimdi fail2ban’ı start edelim. (Ön tanımlı ayarlarda herhangi bir servis için ban özelliği aktif değildir.)

service fail2ban start 

Böylelikle Fail2Ban Kurulumumuzu tamamlamış oluyoruz.

7. Bash Güvenlik Açığı

Linux sistemleri etkileyen , heartbleed ten daha tehlikeli gözüken yeni bir açık bulundu , en kısa sürede bash’i güncellemelisiniz ,açıktan etkilenip etkilenmediğinizi anlamak için terminal de aşağıdaki komutu çalıştırınız.

# env x='() { :;}; echo vulnerable’ bash -c “echo this is a test”

Eğer çıktısı aşağıdaki gibi ise acilen yama yapmalısınız.

vulnerable
this is a test

Eğer komutu çalıştırdığınızda aşağıdaki sonucu görüyor iseniz Sizin korkacak bir şeyinizi yok demektir.

bash: warning: x: ignoring function definition attempt
bash: error importing function definition for `x’
this is a test

8. Cloudflare

Cloudflare web performansını arttıran ve web sitenizin güvenliğini arttırmaya yarayan bir hizmettir. Cloudflare free planı sayesinde CloudFlare CDN, SSL, DDoS koruması gibi birçok özelliği ücretsiz olarak kullanabiliyorsunuz. Cloudflare’in genel özelliklerinden bahsettikten sonra gelelim bu özelliklerin ne işe yaradığına:

1. CDN Nedir?

cloudflare-cdn-haritasi

CDN’nin açılımı Content Delivery Network olup Türkçe anlamı İçerik Dağıtım Ağı’dır. CDN’nin amacı kullanıcılara sitenin en hızlı şekilde ulaştırılmasıdır.
Peki CDN nasıl çalışıyor?
CDN dünyanın birçok yerine dağıtılmış sunucuların bir alt yapısıdır. Bu yapıda kullanıcı hangi ülkedeyse o ülkeye en yakın sunucuya ulaşıyor. Bu sayede kullanıcı uzaktaki sunucuya bağlanıp zaman kaybetmiyor. Bu yüzden hızlandırma açısından önemli bir özellik.
Ayrıca sitenizin hızlı açılması SEO açısından da çok faydalıdır.

2. DDoS Koruması Nedir?

ddos-saldirisi

DDoS saldırganlar sizin sunucunuza çok sayıda PC üzerinden istekler gönderir ve sunucuyu meşgul ederler. Bu şekilde sunucu yoğunluktan yanıt veremez olur ve sunucunuz çöker. İşte Cloudflare sitenize yapılan DDoS saldırılarını bir noktaya kadar önleyebiliyor.
Cloudflare DDoS’u nasıl engelliyor?
Sitenize gelen trafik önce Clodflare sunucusuna erişiyor ve sistem burada saldırgan davranışlarını tespit ederek sitenize ulaşmasını engelliyor.

3. SSL Sertifikası nedir?, Ne işe yarar?

SSL internet üzerinde bilgi aktarımı sırasında bilgininin gizlilik ve güvenliğini saplamak için yapılmış bir güvenlik protokolüdür. Bu SSL sertifikasını sitenin https ile başlaması ve yeşil kilit bulundurmasıyla anlayabiliriz. Siz de Cloudflare ile sitenize SSL sertifikası ekleyebilirsiniz.

4. Trafik analizi

Sitenizin analizi için genelde Google Analytics gibi araçlar kullanılıyor. Ancak Javascript ve pixel tracking yöntemleriyle elde edilemeyen kullanıcıları Cloudflare ile görebilirsiniz.

5. Önbellekleme

Sunucunuz tarafından dinamik şekilde oluşturulmayan sayfaları otomatik olarak tanır, bu sayfaları kendi sunucularında önbellekleyerek hem sunucunuzdaki trafiğinizi azaltır hem de sayfa yükleme sürelerinizi azaltır.

6. Spam Yorum Koruma

CloudFlare sitenize gelen spam yorum sayısını en aza indirgemek için üçüncü parti birçok uygulamadan yararlanır.

7. Dosya Optimizasyonu

Cloudflare Javascipt, CSS gibi dosyalarınızı sıkıştırarak sitenizi daha hızlı açılmasını sağlıyor.

8. Her Zaman Online

Eğer sunucunuz çökerse CloudFlare sitenizin önbelleğe alınmış halini servis ediyor. Bu sayede sitenize giren kullanıcılar hata sayfası almayacak sitenizi görüntüleyebilecek.

Evet arkadaşlar umarım hazırladıgım makaleyi beğenmişsinizdir.Başka makalelerde görüşmek üzere..

]]>
https://codewk.com/linux-sunucularda-php-ini-duzenleme-ve-guvenlik/feed/ 0
Composer Kurulumu ve Kullanımı ? https://codewk.com/composer-kurulumu-ve-kullanimi/ https://codewk.com/composer-kurulumu-ve-kullanimi/#respond Mon, 11 Feb 2019 12:10:47 +0000 https://codewk.com/?p=1204 Composer PHP için bağımlılık yönetim aracıdır. Projenizin ihtiyaç duyduğu kütüphaneleri tanımlamanızı ve sizin için kurmasını ve güncellemesini sağlar. Merak etmeyin otomatik güncellemiyor 🙂

Composer Ne İşe Yarar ?

PHP ile yazılım geliştiriyorsanız, bazı kütüphaneleri/dosyaları yeniden indirmek, yazmak, güncel sürüm kullanmaya çalışmak için zaman harcamanın büyük bir kayıp olduğunu fark etmişsinizdir. Zend, Symfony ve Laravel gibi kütüphaneleri kullanarak proje yapıyorsanız Composer’a daha fazla ihtiyacınız var demektir.

Composer kurulumu hakkında daha detaylı bilgi için https://getcomposer.org/doc/ bu adrese bir göz atabilirsiniz.

Kimler İçin ?

Aslında PHP ile kod yazan herkesin kullanması gerektiğini düşünüyorum. İllaha ki belirli kütüphaneler veya frameworkler vb. kullanıyorsunuzdur; ve en son version kullanmak (benim gözümde) her zaman daha sağlıklıdır. Benim belli başlı kütüphanelere sürekli bir işim düşüyor ve her seferinde git yeniden bul,araştır ve geri getirme işlemlerini yapmak zaman ve odak kaybı bir iş.

Sürekli eski projelerinizi karıştırıp fonksiyon,kod ve dizi aramanıza gerek yok. Neredeyse her işinizi halledebileceğiniz çok geniş kütüphaneler mevcut. Örneğin Laravel Framework için Carbon sınıfını anlatmıştık
(https://codewk.com/laravel-carbon-kurulumu/).Carbon sınıfı gerçekten tarih/zaman işlemleri için muazzam bir kütüphane.

Composer Kurulumu Nasıl Yapılır ?

Windows (için Composer kurulumu)

Windows’a Composer kurulumu yapmak için öncelikle bilgisayarınızda PHP kurulu olmalıdır(XAMPP veya WAMP). https://getcomposer.org/Composer-Setup.exe bu adresten composer’ın indirme işlemini yapıp kurulum yapıyoruz.

Kurulum yaparken php.exe seçmenizi isteyecek. Bu kısımda çok dikkatli olunuz. Doğru php.exe dosyasını seçtiğinizden emin olunuz.

Ve kurulum işlemini başarıyla tamamladınız 🙂 Artık çalışmak istediğiniz dizini CMD yardımı ile açıp artık kütüphaneleri projenize dahil edebilirsiniz.

Linux (için Composer kurulumu)

Terminali açıyoruz ve aşağıdaki komutları sırasıyla veriyoruz.

sudo apt-get update 
sudo apt-get install curl
sudo curl -s https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

Composer kurulumu’nu test etmek için composer komutunu kullanın. Composer doğru şekilde yüklendiyse, sunucu uzun bir yardım bilgileri ve komutları listesiyle yanıt verecektir.

Komutları ve ayrıntılarını ilerleyen yazılarım da daha detaylı olarak örneklerle anlatacağım lütfen takipte kalın 😉

Yazımı okuduğunuz için çok teşekkür ederim bu içeriği paylaşarak size bir yardımım dokunduysa ne mutlu bana… Herhangi bir sorun yaşamanız durumunda yorumlarınızı bekliyor olacağım. İyi Günler 🙂

]]>
https://codewk.com/composer-kurulumu-ve-kullanimi/feed/ 0
Laravel Carbon Kurulumu ? https://codewk.com/laravel-carbon-kurulumu/ https://codewk.com/laravel-carbon-kurulumu/#respond Mon, 11 Feb 2019 09:20:52 +0000 https://codewk.com/?p=1162 Laravel 5.6 için Carbon sınıfı ne işe yarar ? Neden kullanılır ? Nasıl Kurulur ? Bu makalemde bu soruların yanıtını anlatacağım size.

Nedir bu Carbon ?

Laravel Carbon sınıfı sayesinde Laravel Projelerinizde artık zaman/tarih işlemleri artık bir çocuk oyuncağı haline gelecek gerçekten hiç bu kadar kapsamlı ve rahat bir sınıf kullandığımı hatırlamıyorum. İşinizi çok kolaylaştıracak 🙂

Carbon’u nasıl kullanırım ?

Nesbot Carbon Görseli
Nesbot Carbon

Laravel projelerinde Carbon kullanımına geçebiliriz artık. Carbon kullanmanız için gerekli en önemli şey bir Laravel projesi. Aslında PHP Framework ların hepsinde bu sınıfı kullanabilirsiniz. Hatta PHP projelerinde de kullanabilirsiniz. Fakat ben sadece Laravel 5.6’da nasıl kullanıldığını ve kurulumundan bahsedeceğim. Laravel Carbon hakkında daha detaylı bilgiyi https://carbon.nesbot.com/docs adresinde bulabilirsiniz isterseniz inceleyebilirsiniz.

Laravel Carbon’u kurmak için öncelikle Composer gerekli. Composer kullanımı ve kurulumu için ayrıca bu makaleme bakabilirsiniz. https://codewk.com/composer-kurulumu-ve-kullanimi

Laravel projemizin ana dizinine gelip konsol yardımıyla alttaki komutu çalıştırıyoruz. Composer bizim için internetten dosyaları indirip proje içine kuruyor.

$ composer require nesbot/carbon

Eğer üstteki komutta hata alırsanız Laravel sürümünüz 5.8’den küçüktür. Carbon sınıfı Laravel 5.8 ve bundan sonra için resmi olarak destek vereceğini açıkladı. Eğer Laravel versiyonunuz 5.8’in altındaysa Aşağıdaki kodları composer.json dosyanızın içerisine eklemelesiniz.

{
"require": {
"nesbot/carbon": "2.12.0 as 1.34.0"
"kylekatarnls/laravel-carbon-2": "^1.0.0"
}
}

Bu require komutlarını projemizin composer.json dosyasına ekledikten sonra aşağıdaki komutu çalıştırarak composer.json dosyamızı güncelliyoruz ve bu şekilde kurulum işlemi tamamlanmış oluyor.

 $ composer update 

Evet artık projemizin her yerinde bu sınıfı kullanabiliriz. Aşağıda bu sınıf hakkında bir kaç örnek göstereceğim. İlerleyen makalelerde daha detaylı olarak anlatabilirim. Lütfen takipte kalın 🙂

ÖRNEKLER

Carbon sınıfı ile tarih parse etmek ve o tarihi parçalama işlemini aşağıda anlatıyorum. Hiç zor değil bu işlemler Carbon sayesinde 🙂

 
$dt = Carbon::parse('2019-02-11 23:26:11.123789');

var_dump($dt->year); // çıktı(2019) yıl
var_dump($dt->month); // çıktı(02) ay
var_dump($dt->day); // çıktı(11) gün
var_dump($dt->hour); // çıktı(23) saat
var_dump($dt->minute); // çıktı(26) dakika
var_dump($dt->second); // çıktı(11) saniye
var_dump($dt->micro); // çıktı(123789) mikro saniye

Sadece bu işlemlerle sınırlı değil. Dağ gibi bir sınıf bu Carbon sınıfı daha ayrıntılı kullanım bilgileri için lütfen bu adresi ziyaret ediniz. https://carbon.nesbot.com/docs/

İlerleyen yazılarım da daha detaylı olarak örneklerle anlatacağım Carbon kullanımını lütfen takipte kalın 😉

Yazımı okuduğunuz için çok teşekkür ederim bu içeriği paylaşarak size bir yardımım dokunduysa ne mutlu bana… Herhangi bir sorun yaşamanız durumunda yorumlarınızı bekliyor olacağım. İyi Günler 🙂

]]>
https://codewk.com/laravel-carbon-kurulumu/feed/ 0
Laravel Carbon kullanarak geçen süre hesaplama ? https://codewk.com/laravel-carbon-kullanarak-gecen-sure-hesaplama/ https://codewk.com/laravel-carbon-kullanarak-gecen-sure-hesaplama/#respond Mon, 11 Feb 2019 00:44:50 +0000 https://codewk.com/?p=1141 Bu makale’de size Laravel 5.6 için laravel geçen süre hesaplama işlemini Carbon sınıfını kullanarak geçen zamanı nasıl hesaplayacağımız dan bahsedeceğim.

NE OLUYOR BU LARAVEL GEÇEN SÜRE HESAPLAMA ?

Carbon sınıfı PHP uygulamalarında çok kapsamlı ve çeşitli bir şekilde tarih/zaman hesaplamaları yapmaya yarar. Özellikle’de büyük web uygulamaları/web yazılımları ve web servislerinde kesinlikle kullanılmalıdır. Buradan https://carbon.nesbot.com/docs/ isterseniz daha detaylı kapsamlı bir şekilde Carbon sınıfını inceleyebilirsiniz.

LARAVEL GEÇEN SÜRE HESAPLAMA İÇİN ÖRNEK

Elimizde bir sorular veritabanının olduğunu farz edelim ve bu veritabanı na normal bir şekilde Laravel’le veri eklediğimizi farz ediyorum. Dolayısıyla created_at ve updated_at alanlarına sahip oluyoruz bu alanları kullanarak ne kadar süre önce veritabanına kayıt eklediğimizi ve ne kadar süre önce güncellediğimizi size vereceğim fonksiyon ile rahatlıkla görebilirsiniz. 🙂

Paylaşacağım fonksiyonu kullanmadan önce lütfen sunucunuzun tarih ve saatini kontrol ediniz.

laravel carbon sınıfı geçen süre hesaplama örnek mysql veritabanı görseli
Carbon Sınıfı Geçen Süre Hesaplama Örnek MYSQL Veritabanı

Yukarıdaki görsel de ki gibi bir tablomuz olduğunu farz edelim. Bu tablodaki verileri çekerken created_at alanını kullanarak kaç dakika önce bu verinin eklendiğini bilmek istiyoruz diyelim. Hemen burada Carbon sınıfının faydasına giriyorum. Bu işlemi gerçekleştirmek için parse() ve diffForHumans() yapıcı fonksiyonlarını kullanacağız. Elimizdeki yani tablomuz da ki created_at verimizi Carbonun anlayacağı şekilde parse() ettikten sonra diffForHumans() fonksiyonu ile şuanki tarihten parse() ettiğimiz tarihi çıkarıp arasındaki farkı bulacağız.

LARAVEL GEÇEN SÜRE HESAPLAMA İÇİN YARDIMCI FONKSİYON

function gecenSureHesapla($tarih){

$x = Carbon::parse($tarih)->diffForHumans(Carbon::now());

return $x;

}

Yukarıdaki fonksiyonumuzun biraz detayına girelim şimdi.

gecenSureHesapla adında bir fonksiyon tanımladık ve bu fonksiyonla $tarih adında bir değer aldık bu değerimiz created_at imiz olacak. Bu fonksiyonla aldığımız tarihi Carbon::parse($tarih) fonksiyonunu kullanarak parse ettik ve bu sayede artık şuanki tarihten parse ettiğimiz tarihi çıkarabiliriz. diffForHumans(Carbon::now()) fonksiyonu ile de şuan ki zamandan parse ettiğimiz tarihi çıkarmış oluyoruz. diffForHumans fonksiyonunun içine yazdığımız değer Carbon::now() değeri şuanki zamanın parse edilmiş halidir. diffForHumans fonksiyonu ile de tablodaki tarihle şuanki tarihi çıkardıktan sonra işlemimiz tamamlanıyor. ve aldığımız $x değerini return la fonksiyonun dışarısına çıkartıyoruz.

Laravel geçen süre hesaplama için Carbonun bize verebileceği değerler şu şekilde olacaktır;

  • Az önce
  • 5 saniye önce
  • 5 dakika önce
  • 5 saat önce
  • 5 gün önce
  • 5 hafta önce
  • 5 ay önce
  • 5 yıl önce

Evet ve bu şekilde laravel geçen süre hesaplama’yı öğrenmiş ve Carbon sınıfını kullanarak, hesaplamış olduk. Carbon sınıfının kurulumu için ayrıca buradaki makaleme bakabilirsiniz. https://codewk.com/laravel-carbon-kurulumu

Yazımı okuduğunuz için çok teşekkür ederim 🙂 Laravel geçen süre hesaplama içeriğini paylaşarak size bir yardımım dokunduysa ne mutlu bana… Herhangi bir sorun yaşamanız durumunda yorumlarınızı bekliyor olacağım. İyi Günler 😉

]]>
https://codewk.com/laravel-carbon-kullanarak-gecen-sure-hesaplama/feed/ 0