tarafından eklendi tarafından eklendi

Laravel 9’da Bootstrap ile Pagination(Sayfalama)

Laravel’de, blade ile ilgili kısımlar 8’den sonra Tailwind ile gelmeye başladı. Tailwind’e ısınamayan biri olarak, hep projelerimde Bootstrap’a dönüştürme yapıyorum. Farklı paketler var.
Bootstrap(4 veya 5) ile Pagination için minik bir ipucu mevcut.

App\Providers\AppServiceProvider.php Sınıfında boot methoduna;

use Illuminate\Pagination\Paginator;
 
/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
    //Paginator::useBootstrapFive();
    Paginator::useBootstrapFour();
}

Bootstrap 5 veya 4’e göre gerekli satırı eklememiş yeterli.

Önemli Not : PHP ölmedi. :).

Laravel “Specified key was too long error” Hatası

Laravel’de migration yaparken alınan “Specified key was too long error” hatası için çözümden bahsedeceğim. İşi uzatarak ilk olarak neden kaynaklandığından söz edelim.

Mysql 5.7 ya da eşdeğer MariaDB kullanıyorsanız, karakter setiniz utf8mb4 ise bu hata ile karşılaşırsınız. utf8mb4 ile emojileri veritabanında saklayabiliyoruz.

Migration yaparken tam olarak bu hatayla karşılaşırız;

[Illuminate\Database\QueryException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes (SQL: alter table users add unique users_email_unique(email))

[PDOException]
SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

Çözüm için ise AppServiceProvider.php dosyasına;

use Illuminate\Support\Facades\Schema;

public function boot()
{
    Schema::defaultStringLength(191);
}

ekliyoruz ve problem çözülmüş oluyor. Yarım kalan migration dosyalarınızı migration tablosundan kaldırın. Sağlıklı olarak yeniden migrate edin.

İyi çalışmalar.

Neden Php’ye Sövmemeliyiz?

10 yıla yakın bir süredir Php kodluyorum. İlk öğrendiğim programlama dili değil, ama beni ben yapan PROGRAMLAMA dilidir. İlk zamanlarda nesne yönelimli değildi. Pdo yoktu. Printf mi ?yoksa Echo mu? tartışılıyordu. Hatta “Hello World” yazdırarak. “ms” cinsinden hız hesabı yapanlar bile vardı. Php ölü bir dil, ölecek, Python anasını üzecek diyenlerle doluydu her yer! İlk olarak “Zend” tuttu elinden. Daha sonra “codeigniter” okuyup, üfledi Php’yi. Symfony kan verdi, Laravel ise Kalsiyum-C-D Vitamini verdi. Büyümeye, gelişmeye devam ediyor.

Sıkıntıları yok mu? Var. Peki neler bunlar?

  • Çok zengin bir fonksiyon gabarına sahip. Amma velakin tanımlar-isimler belli bir kural-patern-kalıp izlemiyor. Böyle olunca, beynin bedava olduğunu hatırlatıp, hepsini hafızaya attırıyor. Örneğin; strpos(), str_replace(), is_null(), empty(); ne zaman alt çizgi kullanılacak? Ne zaman başa “is” konacak, ne zaman konmayacak bunu ancak deneyimlerimizle bilebiliyoruz.
  • Parametrelerin yerleri fonksiyona göre değişebiliyor.  str_pos() ve array_search() fonksiyonları buna örnektir. $param1,$param2 iken diğerinde $param2,$param1 olabiliyor.
  • Fonksiyonlar yazanın canı nasıl istemişse öyle değer döndürüyor. Bazı fonksiyonlar true-false, bazıları 0-1 bazıları null. Çok çılgın.
  • Concurrency(Eş zamanlılık), Multithreading(Çok işlilik) bulunmayışı.(Apache Modları ile çözülebiliyor. FPM Worker, pthreads vb.)
  • Yeni eklenen her özelliğin yanında, geriye uyumlu olacak diye, dilin fonksiyon çöplüğüne dönüyor olması. Biri de çıkıp, yeter artık yeni sürümde bu böyle! Böyle kullanacaksınız demiyor.

İyi yanları mı?

to be continued… (Pokemon çizgi filmlerinden esinlenerek. )