Giriş yapmadınız.

#1 07.09.2014 09:50:24

sergin
Üye
Kayıtlı: 17.07.2013
Mesajlar: 130
Website

Laravel 4.3'e az kaldı.

Merhaba arkadaşlar,
Geliştirme takvimine göre Laravel 4.3 Kasımda çıkacak. Yeni sürümde neler var? Son üç yazım bununla ilgili.

Laravel 4.3′te Şeyleri Koyacağımız Yerler Değişiyor mu?

Laravel 4.3 Yeni Helper Fonksiyonları

Kapağının Altındaki Laravel: 4.3 Form Geçerlik ve Yetki Denetimi

Çevrimdışı

#2 07.09.2014 11:10:08

okursan
Üye
Kayıtlı: 31.08.2014
Mesajlar: 36

Yanıt: Laravel 4.3'e az kaldı.

Yeni yeni öğrenmeye başlamıştım smile Üstüne güncelleme gelecek smile


~~~

Çevrimdışı

#3 07.09.2014 12:41:55

Roni
Üye
Kayıtlı: 17.07.2013
Mesajlar: 276

Yanıt: Laravel 4.3'e az kaldı.

Bana göre Laravelin her versiyonunda değişiklik göstermesi yazılımdaki süreklilik ilkesini kaybetmesine neden oluyor. Bir makale yada bir kiatap yada bir Tutorial bu değişikliklere göre kökten değişmiş oluyor. Yani bilgiler çöp oldu.
Bunu laravel 3 ile 4 geçişlerinde yaşadım. Daha iki yıl olmadan 4.3 gelmesi yapılan oynamaların sıklığını gösteriyor. Yani bundan sonra her 6 ayda bir laraveli yeniden öğreneceğiz. Öğrenip yazdıklarımızı sileceğiz.

Neyse gülü seven dikenine katlanır.

Çevrimdışı

#4 08.09.2014 15:39:54

Mecit
Üye
Kayıtlı: 13.01.2013
Mesajlar: 28

Yanıt: Laravel 4.3'e az kaldı.

Roni yazdı:

Bana göre Laravelin her versiyonunda değişiklik göstermesi yazılımdaki süreklilik ilkesini kaybetmesine neden oluyor. Bir makale yada bir kiatap yada bir Tutorial bu değişikliklere göre kökten değişmiş oluyor. Yani bilgiler çöp oldu.
Bunu laravel 3 ile 4 geçişlerinde yaşadım. Daha iki yıl olmadan 4.3 gelmesi yapılan oynamaların sıklığını gösteriyor. Yani bundan sonra her 6 ayda bir laraveli yeniden öğreneceğiz. Öğrenip yazdıklarımızı sileceğiz.

Neyse gülü seven dikenine katlanır.

Laravel ile ilgili hiçbir gelişmeyi, Laravel geliştiricilerinin ekseriyetle kullandığı desenleri ve prensipleri (repository pattern, open closed principle, single responsibility vs. gibi) takip etmiyorsanız, en yenisi senesini dolduralı çok olan bilgileriniz çöp olacak ki bir zahmet olsun, zaten. Yazılım, gelişen teknolojilere bağlı olarak sürekli gelişiyor ve değişiyor. Laravel de bu yeniliklere son hızıyla uyum sağlıyor. En basitinden github üzerindeki Laravel projelerine bakarsanız app/ klasörü içerisinde tipik olarak uygulamanın adını taşıyan bir klasör olduğunu, yazılan kodun %90'ının o klasörde olduğunu, ve çoğunlukla repository pattern kullanıldığını göreceksiniz. Siz bu uygulamalara aşina değilseniz ve öğrenmek için de bir çaba göstermiyorsanız, her yeni sürümle bu tür zorlukları yaşarsınız ki bu Laravel'in suçu değil.

Laravel 4.3 ile bu ayrı klasör oluşturma mantığı fevkalade kolay bir hale getirilmiş. Özellikle, form doğrulamaları harika olmuş. Zira, zaten Validator sınıfını her seferinde controller'larda çağırmak gibi absürd bir uygulamaya kimse yanaşmıyor. Ayrı paketleri kullanmak ya da kendi sınıfınızı yazmak yerine direkt sadece form kurallarını belirliyorsunuz.

Yani, kullandığınız bir framework'te bir değişiklik olduğunda "bilgiler çöp oldu" diyorsanız, sizin bilgileriniz zaten çöptür ya da çöpe gitmeye layıktır. Üzülmeye değecek bir şey yok. Yenilikleri takip etmek lazım.

Son düzenleyen Mecit (08.09.2014 15:45:30)

Çevrimdışı

#5 08.09.2014 17:07:18

okursan
Üye
Kayıtlı: 31.08.2014
Mesajlar: 36

Yanıt: Laravel 4.3'e az kaldı.

Her değişiklikte PHP 'nin sağladığı yeni özellikleri takip etmeleri çok güzel bence de. Her seferinde yeni şeyler öğreniyoruz. Uzun süredir program yazmıyordum. Laravel tekrar ısınmamı sağladı smile


~~~

Çevrimdışı

#6 08.09.2014 18:10:01

Roni
Üye
Kayıtlı: 17.07.2013
Mesajlar: 276

Yanıt: Laravel 4.3'e az kaldı.

@Mecit
Demek bizim bilgilerimiz zaten çöpmüş !! yahu sen hangi akılla programlama yapıyorsun? Yazılımda süreklik kavramının ne olduğunu biliyormusun? 4.0 ile hazırladığın projen 4.3 de çalışabilecek mi? Çalışmadı, hadi projeyi yenidenmi yazayım diyeceksin? Peki insanların onca emekle hazırldaıkları bilgiler?
Yenilikler olmalıdır, ama sizin bahsettiğiniz biçimde değil. Versiyon değişiklikleri var olan aksaklıklar, açıklar, ve ek yeni özellikler içermelidir. Bu yeni ekler sizin daha önce hazırldağınız projenizde bir aksaklığa neden olmamalıdır. Yeni gelişmeleri kullanmak isterseniz projenize sadece bu yenilikleri yansıtırsınız.
Laravel henüz oturmamış bir projedir. Sürekli köklü değişiklikler bunun bir kanıtıdır. Bu durum karşısında bizim bilgilerimizin zaten çöp olduğu sonucunu çıkardın ya bir kez daha şaşırdım. O zaman 4.4 de şuan yazdıklarımızda çöp olacak.

Neyse, siz anlaşılan çöplükte yaşamaya alışmışsınız ne diyeyim.

Çevrimdışı

#7 08.09.2014 18:42:11

MURATSPLAT
Yönetici
Yer: Antalya
Kayıtlı: 06.05.2014
Mesajlar: 642
Website

Yanıt: Laravel 4.3'e az kaldı.

Kütüphanelerin ve frameworklerin çok hızlı değişmesi iyi bir şey değildir. Özellikler geri uyumluluk sorunları yaşanır ve üstüne kararsızlıklar ortaya çıkarsa bizler için chennemin kapıları açılır.
@Roni ile benzer düşünceleri paylaşıyorum.

Az önce laravel 4.2'de yine bir hata ile karşılaştım. SqlLite'da şema yapıcı ile colon silinemiyor. Hatalara baktım 1-2 yıllık mevzuyuş. Yani halen çözümü yok. Bir günüm çöpe gitti..

Son düzenleyen MURATSPLAT (09.09.2014 09:15:46)

Çevrimdışı

#8 08.09.2014 22:32:36

Mecit
Üye
Kayıtlı: 13.01.2013
Mesajlar: 28

Yanıt: Laravel 4.3'e az kaldı.

Roni yazdı:

@Mecit
Demek bizim bilgilerimiz zaten çöpmüş !! yahu sen hangi akılla programlama yapıyorsun? Yazılımda süreklik kavramının ne olduğunu biliyormusun? 4.0 ile hazırladığın projen 4.3 de çalışabilecek mi? Çalışmadı, hadi projeyi yenidenmi yazayım diyeceksin? Peki insanların onca emekle hazırldaıkları bilgiler?
Yenilikler olmalıdır, ama sizin bahsettiğiniz biçimde değil. Versiyon değişiklikleri var olan aksaklıklar, açıklar, ve ek yeni özellikler içermelidir. Bu yeni ekler sizin daha önce hazırldağınız projenizde bir aksaklığa neden olmamalıdır. Yeni gelişmeleri kullanmak isterseniz projenize sadece bu yenilikleri yansıtırsınız.
Laravel henüz oturmamış bir projedir. Sürekli köklü değişiklikler bunun bir kanıtıdır. Bu durum karşısında bizim bilgilerimizin zaten çöp olduğu sonucunu çıkardın ya bir kez daha şaşırdım. O zaman 4.4 de şuan yazdıklarımızda çöp olacak.

Neyse, siz anlaşılan çöplükte yaşamaya alışmışsınız ne diyeyim.

Öncelikle, lütfen, sakin olun. Ben şahsi olarak sizin Laravel/PHP bilginize bir şey demedim. Kendi bilgisinden/yazdığı koddan "çöp olacak" diye bahseden sizsiniz. Ben genel olarak konuşuyordum. Biraz daha açmak gerekirse;

4.0 ile hazırladığın projen 4.3 de çalışabilecek mi? Çalışmadı, hadi projeyi yenidenmi yazayım diyeceksin?

4.0'dan 4.1'e, 4.1'den 4.2'ye geçerken yazılan kodlarda köklü değişikliklere gitmeyi gerektiren bir değişim olmadı. Sadece gelen yeni özellikleri entegre edebilmek için eklenen/çıkarılan dosyalar oldu ya da bazı tekniklerin uygulama şekilleri değişti. Mesela, soft delete kullanırken, değişken yerine trait kullanmak gibi. Bu değişiklikler sizin projenizi oluşturmak için yazdığınız kodu etkileyen şeyler değil.

Size şu konuda hak verebilirim, 4.1'den 4.2'ye geçmek ile 4.2'den 4.3'e geçmek arasında büyük farklar olacak çünkü framework'ün klasör yapısı köklü bir değişikliğe gitmiş fakat önceki mesajımda demek istediğim şuydu: (Bu arada, not: Taylor Otwell, Twitter'da yeni sürümü 4.3 olarak mı yoksa 5 olarak mı çıksın diye fikir almıştı. Son durum ne bilmiyorum, takip etmedim ama büyük ihtimal 4.3 olarak çıkacak son sürüm)

https://github.com/LaravelIO/laravel.io/

Örnek olarak bu projeye bakabilirsiniz. app klasörü içerisinde Lio klasörü oluşturulup PSR-0 ile yüklenmek suretiyle kodun büyük bir kısmı (controllers hariç neredeyse tamamı) bu klasör içinde bulunuyor. Bu uygulama şekli belli bir ölçeğin üzerindeki Laravel uygulamalarında çok sık görülen bir durum. Yeni sürümde bu uygulama göz önünde bulundurularak, "yahu bu insanlar zaten uygulamalarını bu şekilde yapılandırıyor, biz de halihazırda öyle yapalım, boşuna ayrı yeten buna vakit harcanmasın" düşüncesiyle böyle bir değişikliğe gidilmiş olması ortada. Yani kısacası, demek istediğim şu ki, bu tür modern uygulamalardan haberdarsanız ve uyguluyorsanız (ki uygulamanız gerekir), zaten büyük sıkıntılar yaşamayacaksınız. Sıkıntı yaşamak şöyle dursun, daha da işinize gelen bir durum olmalı, bu.

Laravel'in oturmamış bir framework olması konusunda kısmen haklısınız fakat düşünecek olduktan sonra PHP'nin kendisi bile tam olarak oturmuş bir dil değil. Sürekli değişiyor ve gelişiyor. Her sürümde yeni bir şey ekleniyor. Laravel'i de zaten çoğu framework'ten ayıran şey bu özellikleri hemen bünyesine katıyor olması. Stabilite sorunları çoğu zaman, PHP'nin sürekli getirdiği yeniliklerden kaynaklanıyor.

Son düzenleyen Mecit (09.09.2014 00:28:00)

Çevrimdışı

#9 09.09.2014 07:43:33

iozguradem
Üye
Yer: Sakarya
Kayıtlı: 25.04.2014
Mesajlar: 84
Website

Yanıt: Laravel 4.3'e az kaldı.

Laracast üzerinden bahsi geçen değişiklikleri inceleme şansım oldu.

Yeni klasör yapısı daha kullanışlı geldi bana. Mevcut projelerden geçişte de pratik çözümler sunulacağını düşünüyorum. Tabi buna rağmen bile 2-3 gün kadar bir süre harcamamız normal. Ama projenin 4.2'de kalmasındansa, 4.3'e geçmeyi tercih ederim.

Özellikle validasyon işleminin rahatlığı -ki yeni gelecek olan özelliği ben devşirme yollarla yapmaya çalışıyordum- çok hoşuma gitti.

Özetle serin kanlı olmakta yarar var.  Her ne kadar 4.2'den 4.3'e geçiş gibi gözükse de, özünde 5'e geçiş olarak yorumlanabilir. Ama geçiş aşamasında hazırlayacağımız blog yazıları ile birbirimize yardımcı olabiliriz. smile


PHP İle Paket Geliştirme başlıklı e-kitabımı ücretsiz olarak indirebilirsiniz: Link

Çevrimdışı

#10 11.09.2014 21:36:27

Mecit
Üye
Kayıtlı: 13.01.2013
Mesajlar: 28

Yanıt: Laravel 4.3'e az kaldı.

Kasım ayında gelecek olan yeni sürüm Laravel 5 olarak belirlenmiş.

https://twitter.com/laravelphp/status/5 … 5553998848

Çevrimdışı

#11 11.09.2014 21:50:44

sergin
Üye
Kayıtlı: 17.07.2013
Mesajlar: 130
Website

Yanıt: Laravel 4.3'e az kaldı.

Konuyu açtığım mesajda belirttiğim Laravel 4.3 Yeni Helper Fonksiyonları başlıklı blog yazıma "Geliştirme takvimine göre Laravel 4.3 sürümünün 2014 Kasım ayında çıkması bekleniyor. Geliştirme aşamasındaki 4.3 birçok yeni özellikler ve kapsamlı değişiklikler getiriyor. Hatta 4.3 yerine 5.0 olarak çıkması bile tartışılmaya başlandı. " cümleleri ile başlamıştım. Böylesine kapsamlı değişiklikler major bir sürüm numarası hak ediyordu. Taylor sonunda 5 olmasına kararı vermiş demek ki. Hayırlı olsun.

Çevrimdışı

#12 12.09.2014 16:23:08

unstable77
Üye
Kayıtlı: 02.07.2014
Mesajlar: 15

Yanıt: Laravel 4.3'e az kaldı.

Bu konuya abone olunur.

@Mecit : repository pattern konusunu ASP.NET  MVC de anlatan güzel bloglar var. PHP de bulamadım. Ama bunu bide PHP de anlatsan ne güzel olurdu. big_smile

Çevrimdışı

#13 12.09.2014 21:28:27

Aristona
Üye
Yer: Kastamonu
Kayıtlı: 08.02.2013
Mesajlar: 173
Website

Yanıt: Laravel 4.3'e az kaldı.

unstable77 yazdı:

Bu konuya abone olunur.

@Mecit : repository pattern konusunu ASP.NET  MVC de anlatan güzel bloglar var. PHP de bulamadım. Ama bunu bide PHP de anlatsan ne güzel olurdu. big_smile

<?php namespace Aristona\Repositories;

final class UserRepository
{

	private $user;

	public function __construct(User $user)
	{
		$this->user = $user;
	}

	public function getAllUsers()
	{
		return $this->user->all();
	}

	public function getBannedUsers()
	{
		return $this->user->where('authority', 255)->get();
	}
}

class User extends Eloquent
{
	// Tipik model
}

class UserController extends BaseController {

	private $user;

	public function __construct(UserRepository $user)
	{
		$this->user = $user;
	}

	public function index()
	{
		return \View::make('home.homepage')
			->with('bannedUsers', $this->user->getBannedUsers());
	}
}

*Direkt tarayıcıya yazdım, test etmedim.

Verileri tuttuğun yer ile (veritabanı), kullanacağın yer arasında (controller) duplicationları ve business logici ayırmak için bir katman oluşturmaya repository deniyor. En basit haliyle buna benziyor ve ben bu şekilde kullanıyorum. Zaten çoğu Laravel geliştirici, controller - model arasına bir aracı katman koyuyor ve bunu app/[İsim] klasörü altında tutuyorlar.

Ben bu versiyonun Laravel 5 olarak çıkmasından yanayım. Tüm klasör yapısı değişiyor ve ve ufak bir versiyon güncellemesiymiş gibi çıkıyor.

Anlamadığım nokta, neden helper fonksiyonlar adı altında global fonksiyonlar oluşturuluyor. İyi birşey değil bu. Tamam dd() falan kabul edilebilir helper olarak ama classlara global fonksiyonla alias vermek iyi bir kullanım değil. Bu Laraveldeki magic takıntısı nedir anlayamıyorum. Kolaylık sağlayacağız derken bad practice kullanımları teşvik ediyorlar.

Bu arada, çeviriler eksikmi yoksa yeniliklerin hepsi bu kadar mı? Major bir release için fazla değişiklik yok gibi geldi bana.

Son düzenleyen Aristona (12.09.2014 21:28:56)


"Eğer 6 ay önce yazdığın kodları gördüğünde utanmıyorsan, kendini yeterince hızlı geliştiremiyorsun demektir."

Site: http://anilunal.com/
Blog: http://aristona.github.io/

Çevrimdışı

#14 13.09.2014 02:35:48

Mecit
Üye
Kayıtlı: 13.01.2013
Mesajlar: 28

Yanıt: Laravel 4.3'e az kaldı.

unstable77 yazdı:

Bu konuya abone olunur.

@Mecit : repository pattern konusunu ASP.NET  MVC de anlatan güzel bloglar var. PHP de bulamadım. Ama bunu bide PHP de anlatsan ne güzel olurdu. big_smile

Aristona yazdı:
<?php namespace Aristona\Repositories;

final class UserRepository
{

	private $user;

	public function __construct(User $user)
	{
		$this->user = $user;
	}

	public function getAllUsers()
	{
		return $this->user->all();
	}

	public function getBannedUsers()
	{
		return $this->user->where('authority', 255)->get();
	}
}

class User extends Eloquent
{
	// Tipik model
}

class UserController extends BaseController {

	private $user;

	public function __construct(UserRepository $user)
	{
		$this->user = $user;
	}

	public function index()
	{
		return \View::make('home.homepage')
			->with('bannedUsers', $this->user->getBannedUsers());
	}
}

Repository Pattern, temel olarak bu şekilde uygulanıyor. Yazdığınız sınıfı, controller'in __construct metodunda depency injection aracılığı ile çağırıyorsunuz (Laravel 5'te controller içindeki istediğiniz metotta injection yapabiliyor olacaksınız). Bu sayede hem veritabanı esnekliği sağlanıyor, hem de yazılan kod test edilebilir hale geliyor. Tabii, yukarıdaki örnek bir adım daha öteye götürülebilir. Doğrudan sınıfı inject etmek yerine arayüz (interface) yazarsınız ve UserRpository bu arayüzü implement eder. Daha sonra bir service provider yazarak bu arayüzü bu sınıf ile ilişkilendirirsiniz. (Laravel'in bind metodunu kullanarak). Başka bir veritabanına geçmek istediğinizde, bu arayüz inject edildiğinde kullanılmasını istediğiniz veritabanını bu arayüzle ilişkilendirirsiniz ve tek hamlede başka hiçbir şeye dokunmanız gerekmeden, misal MySQL'den Mongo'ya geçiş sağlayabilirsiniz. Github'daki çeşitli laravel projelerine bakabilirsiniz. Mesela, laravel-tricks bu deseni güzel bir şekilde uyguluyor.

Son düzenleyen Mecit (13.09.2014 02:38:11)

Çevrimdışı

#15 14.09.2014 17:40:41

Roni
Üye
Kayıtlı: 17.07.2013
Mesajlar: 276

Yanıt: Laravel 4.3'e az kaldı.

Laravelin yeni versiyonunda otomatik olarak nesne enjekte ediliyor. Bunun otomatik olmasını sağlayan ne?
Bu örnekte RegisterRequest sınıfı otomatik çağırılıyor.

class AuthController extends Controller {
...
	public function postRegister(RegisterRequest $request)
	{
	// custom code goes here.
	$this->auth->login($this->user); //custom change
	 
	return redirect('/dash-board'); //changed the uri from '/' to '/dash-board'
	}

...
}

Bu Örnekte FriendFormRequest sınıfı otomatik çağırılıyor.

<?php namespace App\Http\Controllers;

use App\Http\Requests\FriendFormRequest;
use Illuminate\Routing\Controller;
use Response;
use View;

class FriendsController extends Controller
{
    public function getAddFriend()
    {
        return view('friends.add');
    }

    public function postAddFriend(FriendFormRequest $request)
    {
        return Response::make('Friend added!');
    }
}

Çevrimdışı

#16 14.09.2014 21:10:08

okursan
Üye
Kayıtlı: 31.08.2014
Mesajlar: 36

Yanıt: Laravel 4.3'e az kaldı.


~~~

Çevrimdışı

#17 14.09.2014 21:47:10

Roni
Üye
Kayıtlı: 17.07.2013
Mesajlar: 276

Yanıt: Laravel 4.3'e az kaldı.

Evet Method Injection ama bu  Injection işleminin route ile birlikte nasıl yapıldığını merak etmiştim. Sınıfları inceledim ve ReflectionClass ile yapıldığını gördüm.

class Y { 
    public function test()
    {
       return 23;
    }   
}

class X
{
    public function foo(Y $y)
    {
         echo $y->test();
    }

}

Normalde yukarıdaki  X sınıfının foo metodunu çağırabilmek için aşağıdaki gibi kodlanması gerekir.

$x = new X();
$x->foo(new Y);

Ama route bu işlemi otomatik yapıyor.

Son düzenleyen Roni (14.09.2014 21:53:12)

Çevrimdışı

#18 06.07.2019 14:21:18

konnerkapono
Üye
Kayıtlı: 06.07.2019
Mesajlar: 2

Yanıt: Laravel 4.3'e az kaldı.

Her seferinde yeni şeyler öğreniyoruz. Uzun süredir program yazmıyordum. Laravel tekrar ısınmamı sağladı smile

Çevrimdışı

Forum alt kısmı