Laravel Helper Class Ekleme





Freamwork kullanırken var olmayan bir özellik için veya kendi işlermizi yapan yeni yapılar sınıflar geliştirmek ve kullanmak isteyebiliriz. Böylece freamwork ü genişletme işlemi yapmış oluruz. Kısaca hemen Laravel de kendi helper sınıflarımızı oluşturmayı göreceğiz.
Laravel de bunu sağlayan standart bir yapı yoktur. Bunun için kütüphane dosyalarınızın nerede olacağı belirleyip bunların bulunacağı bir dizin açmamız gerekiyor. Bu dizine helper class larımızı ekliyor olacağız.
1) Yeni dizin ekleme
Örneğin “app” dizini altına bir “library” adında dizin açalım.
laravel helper directory
helper directory
2) laravel in başlangıç dosyası/işlemlerini bulunduran “app/start” dizinine geçiyoruz. Burada “global.php” dosyasında yer alan class loader sınıfına eklemiş olduğumuz dizinimizi belirtmemiz gerekiyor. Dosyayı görüntülediğimiz de controllers, models gibi dizinlerin tanımlandığını göreceksiniz. Bizde ClassLoader::addDirectories methoduna gönderilen dizin yollarına kendi dizinimizi ekliyoruz.
ClassLoader::addDirectories(array(

app_path().'/commands',
app_path().'/controllers',
app_path().'/models',
app_path().'/database/seeds',

app_path().'/library',

));
3) Bu adımda ise composer.json dosyamızda autoload dizisi içine eklediğimiz “app/library” yolunu bildiriyoruz.
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"laravel/framework": "4.2.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/library"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
4) Composer.json dosyamızı düzenledikten sonra terminal den “composer dumpautoload” komutu ile işlemlerimizi tamamlıyoruz.
Artık ekleyeceğimiz helper class larını kullanabiliriz. Controllers,models, routes gibi yapılarımızda da erişebiliyoruz.
Dikkat edilmesi gereken bir husus static methodlara erişim sağlayabiliyoruz.
Örnek: Message adında helper sınıf yazdık. İçeriği:
class Message
{
public function test(){
 return "test içeriği";
 }

 public static function testStatic(){
 return "test static içeriği";
 }
 }
}
olsun. Controller dosyamızda da bu yardımcı sınıfı kullanalım.
class MainController extends BaseController{

 public function show()
 {
// static method kullanalim
return HashOne::testStatic();

// static olmayan method kullanalim
 $test = new HashOne();
 return $test->test();
 }
}
Gördüğünüz gibi artık helper class ımızı yazdık ve controller içeriğimizde kullandık.

2-Bu adımda da  library içine ssp.class.php oluşturuyoruz.