• 28-04-2014, 01:18:38
    #1
    İyi forumlar.
    Sizin için hazırlamış olduğum Laravel URL Kısaltma Script'ini yayınlayacağım.

    Öncelikle Routes Ayarlayalım.
    Laravelin kurulu olduğu dizinden routes.php yi açın ve aşağıdaki gibi değiştirin.
    <?php
    	Route::get('/', array(
    		'as' 	=> 'home',
    		'uses'  => 'HomeController@index'
    	));
    	
    	Route::post('/make',array(
    		'as'	=> 'make',
    		'uses'	=> 'LinkController@make'
    	));
    	
    	Route::get('/{code}', array(
    		'as'	=> 'get',
    		'uses'	=> 'LinkController@get'
    	));
    ?>
    Laravelin kurulu olduğu dizinden controllers klasörüne girin.
    HomeController.php yi aşağıdaki gibi düzenleyin.
    <?php
    class HomeController extends BaseController {
    	public function index()
    	{
    		return View::make('home');
    	}
    }

    DB yayınlayayım.
    # DB
    CREATE TABLE IF NOT EXISTS `links` (
      `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `url` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
      `code` varchar(12) COLLATE utf8_unicode_ci NOT NULL,
      `created_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      `updated_at` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=10000000 ;
    # DB
    Laravelin kurulu olduğu dizinden app klasörüne sonra da views klasörüne girin.
    home.php dosyasını oluşturun.
    views/home.php
    <!doctype html>
    <html>
    	<head>
    		<meta charset="UTF-8" />
    		<title>URL Shorter</title>
    		<link rel="stylesheet" href="<?php echo URL::to('css/global.css'); ?>" />
    	</head>
    	<body>
    		<div class="container">
    			<h1 class="title">URL Kısalt</h1>
    			
    			<?php
    				if(@$errors->has('url')){
    					echo '<p>'.$errors->first('url').'</p>';
    				}
    				
    				if(Session::has('global')){
    					echo '<p>'.Session::get('global').'</p>';
    				}
    			?>
    			
    			<form action="<?php echo URL::action('make'); ?>" method="post">
    				<input type="url" name="url" placeholder="URL Giriniz." autocomplete="off" <?php echo(Input::old('url')) ? 'value="'. e(Input::old('url')) .'"' : '' ?> />
    				<input type="submit" value="Kısalt" />
    			</form>
    		</div>
    	
    	
    	</body>
    </html>
    Laravelin kurulu olduğu dizinden app klasörüne sonra da models klasörüne girin.
    Link.php dosyasını oluşturun.
    models/Link.php
    class Link extends Eloquent{
    	protected $fillable = array('url', 'code');
    }
    Laravelin kurulu olduğu dizinden app klasörüne sonra da controllers klasörüne girin.
    LinkController.php dosyasını oluşturun.
    controllers/LinkController.php
    <?php 
    class LinkController extends BaseController{
    	public function make(){
    		
    		$validator = Validator::make(Input::all(),array(
    			'url' => 'required|url|max:255'
    		));
    		
    		if($validator->fails()){
    			return Redirect::action('home')->withInput()->withErrors($validator);
    		}else{
    			
    			$url   = Input::get('url');
    			$code  = null;
    			$exist = Link::where('url', '=', $url);
    			if($exist->count() == 1){
    				$code = $exist->first()->code;
    			}else{
    				
    				$created = Link::create(array(
    					'url'	=> $url
    				));
    				
    				if($created){
    					$code = base_convert($created->id, 10, 36);
    					
    					Link::where('id', '=', $created->id)->update(array(
    						'code' => $code
    					));
    				}
    				
    			}
    			
    			if($code){
    				return Redirect::action('home')->with('global', 'URL kısaltıldı. <br> URL : <a href="' . URL::action('get',$code) .'">' . URL::action('get', $code) .'</a>');
    			}
    			
    		}
    		
    		return Redirect::action('home')->with('global', 'Hata Oluştu. Tekrar deneyiniz.');
    		
    	}
    	
    	public function get($code){
    		$link = Link::where('code','=',$code);
    		if($link->count()==1){
    			return Redirect::to($link->first()->url);
    		}else{
    			return Redirect::action('home');
    		}
    	}
    }
    ?>
    Umarım yararım olmuştur.

    Kaynak: https://www.youtube.com/playlist?list=PLfdtiltiRHWEhJJgooJ8y_Bbiv2Zb7X6n
  • 28-04-2014, 01:22:10
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Paylaşımın için teşekkür ederim. Laravel konusunda forumda güzel şeyler ortaya çıkartmaya devam etmeliyiz.
  • 28-04-2014, 20:18:07
    #3
    paylaşımın için teşekkürler, laravel php framework olduğunu şimdi öğrendim. kullananlara bir kaç sorum olucak?

    Routes ayarlamasında url kısaltma scripti değilde portal yazdığımızı düşünelim, 100 e yakın link yapımız olsa tek tek girmemiz mi gerekiyor?

    Route::get('/haber', array(
    'as' => 'haber',
    'uses' => 'HaberController@index'
    ));

    siteadresi.com/haber/a/asd/vs vs
    her bir tanımlamayı router.php üzerinden mi yapmak zorundayım?

    ----------------
    views/home.php

    html+php kodları iç içe, benim pek sevmediğim bir yapıda.

    standartların dışında template sistemi var mı?

    ------

    genel olarak performansı ve artıları nedir?
  • 29-04-2014, 01:58:51
    #4
    CoreDeluxe adlı üyeden alıntı: mesajı görüntüle
    paylaşımın için teşekkürler, laravel php framework olduğunu şimdi öğrendim. kullananlara bir kaç sorum olucak?

    Routes ayarlamasında url kısaltma scripti değilde portal yazdığımızı düşünelim, 100 e yakın link yapımız olsa tek tek girmemiz mi gerekiyor?

    Route::get('/haber', array(
    'as' => 'haber',
    'uses' => 'HaberController@index'
    ));

    siteadresi.com/haber/a/asd/vs vs
    her bir tanımlamayı router.php üzerinden mi yapmak zorundayım?

    ----------------
    views/home.php

    html+php kodları iç içe, benim pek sevmediğim bir yapıda.

    standartların dışında template sistemi var mı?

    ------

    genel olarak performansı ve artıları nedir?
    Router için grouplama vb. bir çok özellik var. Bunları laravel.com'daki dokümantasyon sayfasında görebilirsiniz.

    Blade template engine yerine twig vb. yapılarda kullanabilirsiniz.
  • 29-04-2014, 19:42:29
    #5
    CoreDeluxe adlı üyeden alıntı: mesajı görüntüle
    paylaşımın için teşekkürler, laravel php framework olduğunu şimdi öğrendim. kullananlara bir kaç sorum olucak?

    Routes ayarlamasında url kısaltma scripti değilde portal yazdığımızı düşünelim, 100 e yakın link yapımız olsa tek tek girmemiz mi gerekiyor?

    Route::get('/haber', array(
    'as' => 'haber',
    'uses' => 'HaberController@index'
    ));

    siteadresi.com/haber/a/asd/vs vs
    her bir tanımlamayı router.php üzerinden mi yapmak zorundayım?

    ----------------
    views/home.php

    html+php kodları iç içe, benim pek sevmediğim bir yapıda.

    standartların dışında template sistemi var mı?

    ------

    genel olarak performansı ve artıları nedir?
    saintx adlı üyeden alıntı: mesajı görüntüle
    Router için grouplama vb. bir çok özellik var. Bunları laravel.com'daki dokümantasyon sayfasında görebilirsiniz.

    Blade template engine yerine twig vb. yapılarda kullanabilirsiniz.
    Ogün arkadaşımıza katılıyorum. Laravel.com'da görebilirsiniz.
  • 30-04-2014, 00:25:51
    #6
    Üyeliği durduruldu
    CoreDeluxe adlı üyeden alıntı: mesajı görüntüle
    paylaşımın için teşekkürler, laravel php framework olduğunu şimdi öğrendim. kullananlara bir kaç sorum olucak?

    Routes ayarlamasında url kısaltma scripti değilde portal yazdığımızı düşünelim, 100 e yakın link yapımız olsa tek tek girmemiz mi gerekiyor?

    Route::get('/haber', array(
    'as' => 'haber',
    'uses' => 'HaberController@index'
    ));

    siteadresi.com/haber/a/asd/vs vs
    her bir tanımlamayı router.php üzerinden mi yapmak zorundayım?

    ----------------
    views/home.php

    html+php kodları iç içe, benim pek sevmediğim bir yapıda.

    standartların dışında template sistemi var mı?

    ------

    genel olarak performansı ve artıları nedir?
    önceki versionlarda
    Alıntı
    Controller::detect()
    ile controller otomatik yönlendiriliyordu ancak laravel 4 ile tek tek yazmak lazım.
    Alıntı
    Route::controller('yeas', 'YeasController');
    gibi
  • 30-04-2014, 01:44:26
    #7
    Kimlik doğrulama veya yönetimden onay bekliyor.
    CoreDeluxe adlı üyeden alıntı: mesajı görüntüle
    paylaşımın için teşekkürler, laravel php framework olduğunu şimdi öğrendim. kullananlara bir kaç sorum olucak?

    Routes ayarlamasında url kısaltma scripti değilde portal yazdığımızı düşünelim, 100 e yakın link yapımız olsa tek tek girmemiz mi gerekiyor?

    Route::get('/haber', array(
    'as' => 'haber',
    'uses' => 'HaberController@index'
    ));

    siteadresi.com/haber/a/asd/vs vs
    her bir tanımlamayı router.php üzerinden mi yapmak zorundayım?

    ----------------
    views/home.php

    html+php kodları iç içe, benim pek sevmediğim bir yapıda.

    standartların dışında template sistemi var mı?

    ------

    genel olarak performansı ve artıları nedir?
    Routeları resourceful olarak tanımlayabilirsiniz. Ayrıca Phil Sturgeon'un bu konuda bir yazısı var: http://philsturgeon.co.uk/blog/2013/...-route-to-evil Aslında routeleri elle yazmak iyi birşey.

    views/home.php kullanıyorsanız Blade motorunu kullanmadığınızı farzediyorum. Her koşulda view katmanı içerisinde output dışında herhangi bir PHP işlemi yaptırmamanız lazım.

    Laravel'in template motoru ve View komposerlerini kullanmak yeterli olur.
  • 30-04-2014, 10:32:06
    #8
    CoreDeluxe adlı üyeden alıntı: mesajı görüntüle
    paylaşımın için teşekkürler, laravel php framework olduğunu şimdi öğrendim. kullananlara bir kaç sorum olucak?

    Routes ayarlamasında url kısaltma scripti değilde portal yazdığımızı düşünelim, 100 e yakın link yapımız olsa tek tek girmemiz mi gerekiyor?

    Route::get('/haber', array(
    'as' => 'haber',
    'uses' => 'HaberController@index'
    ));

    siteadresi.com/haber/a/asd/vs vs
    her bir tanımlamayı router.php üzerinden mi yapmak zorundayım?

    ----------------
    views/home.php

    html+php kodları iç içe, benim pek sevmediğim bir yapıda.

    standartların dışında template sistemi var mı?

    ------

    genel olarak performansı ve artıları nedir?

    URL lerdeki parametreleri yakalayabiliyorsunuz hocam şöyle;
    //siteadi.com/haber/deneme
    Route::get('haber/{slug?}', function($slug = null)
    {
        return $slug; // deneme
    });
    Kaynak

    Blade Template Motoru var bunu kullanmak için View dosyasının sonuna .blade.php eklemeniz gerekiyor, birçok güzel özelliği var kaynak

    Genel olarak kullanımı çok kolay Blade ile layout sayfalar oluşturup onları altsayfalardan extend edip kullanabiliyorsun yine başka viewleri başka viewlara include edebiliyorsun mesala;

    layout.blade.php
    <html>
        <body>
            @include('sidebar')
    
            <div class="container">
                @yield('content')
            </div>
        </body>
    </html>
    home.blade.php
    @extends('layout')
    
    @section('content')
        <p>Burası içerik</p>
    @stop
    sidebar.blade.php
         <p>Burası sidebar</p>
    böyle dosyaların olduğunu varsayalım daha sonra herhangi bir Route ile home viewini döndürürsen şöyle;
    Route::get('/', function(){
        return View::make('home');
    });
    Çıktı şöyle olur;
    <html>
        <body>
            <p>Burası sidebar</p>
    
            <div class="container">
                <p>Burası içerik</p>
            </div>
        </body>
    </html>
    ORM yapısıyla veritabanı işleri çok çok kolay. bir veritabanı oluşturup daha sonra models klasörü altında bir model dosyası oluşturup tamamen hazır hala geliyorsun örneğin;

    users diye bir veritabanı oluşturdun daha sonra app/models/User.php dosyası oluşturup içeriğini

    class User extends Eloquent {}
    yapman yeterli daha sonra istediğin yerde şu komutları kullanabilirsin;

    User::all(); // bütün üyerleri döndürür
    User::find(1); // 1 idli üyeyi döndürür
    User::findOrFail(1); // 1 idli üyeyi varsa döndürür yoksa hata verir
    User::where('votes', '>', 100)->firstOrFail(); // votes'sutunu 100den büyük olanlardan ilk kayıtı getirir yoksa hata verir
    gibi birçok şeyi kullanabilirsin
    kaynak
  • 30-04-2014, 16:53:24
    #9
    cevap veren arkadaşlara teşekkürler.

    php nin include path dizinine laravel de olabilir, bir php framework ile scripti o dizinde yazmayı planlıyorum. scripti kullanıcak 20-30 tane sitenin aynı dosyadan çalışmasını sağlayacağım.

    laravel indirip kodlarında düzenleme yapmayı düşünüyorum

    router.php de sadece controlleri tanımlayıp
    Route::controller('haber', 'haberController');

    detect yapılandırmasını controller dosyasına vereceğim.

    Route::get('haber/{slug?}', function($slug = null)
    {
    return $slug; // deneme
    });


    class haberController extends LaravelController {
    static function Detect() { burda yapılandırmam olucak }
    }

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:53:24 -->-> Daha önceki mesaj 16:51:18 --

    jebias template sistemi tam istediğim gibi, bilgilendirdiğin için teşekkür ederim