• 23-02-2014, 01:05:52
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    * Composer nedir?

    Composer "dependency management" yani bağımlılık yönetimi yapan bir araçtır. Anlayacağınız şekilde açıklarsak, projenizde kullanacağınız kütüphaneleri tek bir komut ile dahil etmenize, güncellemenize yarayan bir araçtır. Composer projelerde ciddi manada zaman kazandırmanızı sağlamaktadır. Packagist üzerinden yüzlerce kütüphaneye ulaşabilir, projenizi yapım aşamasını hızlandırabilirsiniz. (@bilgi: Composer'ı kullanabilmek için PHP 5.3 ve üzeri kullanmanız gerekmektedir.)

    composer.json dosyası örnekleri;
    Örnek 1;
    {
    	"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"
    		]
    	},
    	"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"
    }
    Örnek 2;
    {
        "name": "symfony/symfony",
        "type": "library",
        "description": "The Symfony PHP framework",
        "keywords": ["framework"],
        "homepage": "http://symfony.com",
        "license": "MIT",
        "authors": [
            {
                "name": "Fabien Potencier",
                "email": "fabien@symfony.com"
            },
            {
                "name": "Symfony Community",
                "homepage": "http://symfony.com/contributors"
            }
        ],
        "require": {
            "php": ">=5.3.3",
            "doctrine/common": "~2.2",
            "twig/twig": "~1.12",
            "psr/log": "~1.0"
        },
        "replace": {
            "symfony/browser-kit": "self.version",
            "symfony/class-loader": "self.version",
            "symfony/config": "self.version",
            "symfony/console": "self.version",
            "symfony/css-selector": "self.version",
            "symfony/dependency-injection": "self.version",
            "symfony/debug": "self.version",
            "symfony/debug-bundle": "self.version",
            "symfony/doctrine-bridge": "self.version",
            "symfony/dom-crawler": "self.version",
            "symfony/event-dispatcher": "self.version",
            "symfony/expression-language": "self.version",
            "symfony/filesystem": "self.version",
            "symfony/finder": "self.version",
            "symfony/form": "self.version",
            "symfony/framework-bundle": "self.version",
            "symfony/http-foundation": "self.version",
            "symfony/http-kernel": "self.version",
            "symfony/intl": "self.version",
            "symfony/locale": "self.version",
            "symfony/monolog-bridge": "self.version",
            "symfony/options-resolver": "self.version",
            "symfony/process": "self.version",
            "symfony/propel1-bridge": "self.version",
            "symfony/property-access": "self.version",
            "symfony/proxy-manager-bridge": "self.version",
            "symfony/routing": "self.version",
            "symfony/security": "self.version",
            "symfony/security-acl": "self.version",
            "symfony/security-core": "self.version",
            "symfony/security-csrf": "self.version",
            "symfony/security-http": "self.version",
            "symfony/security-bundle": "self.version",
            "symfony/serializer": "self.version",
            "symfony/stopwatch": "self.version",
            "symfony/swiftmailer-bridge": "self.version",
            "symfony/templating": "self.version",
            "symfony/translation": "self.version",
            "symfony/twig-bridge": "self.version",
            "symfony/twig-bundle": "self.version",
            "symfony/validator": "self.version",
            "symfony/var-dumper": "self.version",
            "symfony/web-profiler-bundle": "self.version",
            "symfony/yaml": "self.version"
        },
        "require-dev": {
            "doctrine/data-fixtures": "1.0.*",
            "doctrine/dbal": "~2.2",
            "doctrine/orm": "~2.2,>=2.2.3",
            "doctrine/doctrine-bundle": "~1.2",
            "monolog/monolog": "~1.11",
            "propel/propel1": "1.6.*",
            "ircmaxell/password-compat": "1.0.*",
            "ocramius/proxy-manager": ">=0.3.1,<0.6-dev",
            "egulias/email-validator": "~1.2"
        },
        "autoload": {
            "psr-0": { "Symfony\\": "src/" },
            "classmap": [
                "src/Symfony/Component/HttpFoundation/Resources/stubs",
                "src/Symfony/Component/Intl/Resources/stubs"
            ],
            "files": [ "src/Symfony/Component/Intl/Resources/stubs/functions.php" ]
        },
        "minimum-stability": "dev",
        "extra": {
            "branch-alias": {
                "dev-master": "2.6-dev"
            }
        }
    }
    * Composer nasıl kurulur?

    Composer'ı Windows ortamına kurmak için bu bağlantıdaki kurulum aracını indirip ilgili yönergeleri izleyerek hızlıca kurulumu gerçekleştirebilirsiniz. ( git ile ilgili hata verirse şu adresten git'i indirip kurabilirsiniz. )
    Eğer Linux vb. bir sistemi kullanıyorsanız şu adımları izleyerek kurulumu tamamlayabilirsiniz.

    Adım 1 ( cURL aracılığa composer.phar'ı indirelim ve PHP olarak çalıştıralım. );
    curl -sS https://getcomposer.org/installer | php
    Adım 2 ( composer.phar dosyamızı "composer ..." şeklinde kullanabilmek için /usr/local/bin klasörüne taşıyalım. )
    sudo mv composer.phar /usr/local/bin/composer.phar
    Adım 3 ( composer.phar'ı alias olarak ekliyelim. )
    alias composer='/usr/local/bin/composer.phar'
    Adım 4 ( git kurulu değilse git kurmalıyız. bazı yerlerde hata verebiliyor. )
    sudo apt-get install -y git
    Kurulumumuz başarıyla tamamlandı. Artık Composer'ı istediğimiz dizinde "composer ..." şeklinde kullanabileceğiz.

    * Composer nasıl kullanılır?

    Composer, composer.json'a tanımladığımız değerleri okuyup bu değerler ile işlem yapmaktadır. Eklenebilecek değerlere dokümantasyon sayfasından bakabilirsiniz.

    composer.json dosyamız minimal düzeyde şu şekilde olabililmektedir.
    {
    	"require": {
    		"php": ">=5.3.3",
    		/*
    		* Projede kullanılacak olan kütüphaneleri
    		* bu kısma ekleyebilirsiniz.
    		*/
    	}
    }
    Örnek;

    composer.json dosyamızın şu şekilde olduğunu kabul edelim.

    {
    	"require": {
    		"rmccue/requests": "1.6.*"
    	}
    }
    Terminal (Windows üzerinde Komut İstemcisi) aracılığıyla bağımlılıkları temin edebiliriz.

    composer install
    Kullandığımız kütüphanelere güncellemeler geldiyse bu güncellemeleri almak için ise terminalden şu komutu yazmamız yeterli olacaktır.

    composer update
    Kütüphaneleri PHP dosyamızda kullanmak için ise şu yolu deneyebiliriz.

    <?php
    	
    	# Bağımlılıkları çalışma sayfamıza dahil edelim.
    	require("vendor/autoload.php");
    	
    	# Örnekte çağırdığımız kütüphane olan "imsaintx/utils" üzerinde bi' kaç işlem yapalım.
    	
    	print_r(Requests::get('http://httpbin.org/ip')->body);
    Composer sürümümüzü güncellemek için ise şu komutu kullanabiliriz.

    composer self-update
    Kütüphaneleri incelemek, araştırmak için Packagist'i kullanabilirsiniz.

    Kurulum için videolu anlatım;


    Composer türevi farklı dillerde "dependency manager" yani (bağımlılık yöneticisi) olarak kullanabileceğimiz araçlarda mevcuttur. Örneğin, Java için Maven Linux için Aptitude vb. diyerek uzatabiliriz.

    Sormak istediğiniz soruları ve görüşlerinizi konuya yazarsanız sevinirim. Saygılarımla
  • 23-02-2014, 01:38:44
    #2
    Üyeliği durduruldu
    saintx adlı üyeden alıntı: mesajı görüntüle
    * Composer nedir?

    Composer projenizde kullanacağınız kütüphaneleri tek bir komut ile dahil etmenize, güncellemenize yarayan bir araçtır.
    "dependency management ( bağımlılık yönetim ) aracı" daha şık olurdu. Yazı için teşekkürler.
    mesela composer tarzı diğer dependency managerlar
    java için maven
    linux için aptitude
  • 23-02-2014, 01:45:40
    #3
    PHPci adlı üyeden alıntı: mesajı görüntüle
    "dependency management ( bağımlılık yönetim ) aracı" daha şık olurdu. Yazı için teşekkürler.
    mesela composer tarzı diğer dependency managerlar
    java için maven
    linux için aptitude
    Bildirimin için teşekkür ederim. Yeni başlayan arkadaşların kafasını karıştırmamak için bu deyimi kullanma gereksinimini duydum. Alternatifleri konunun alt kısmına ekliyorum.
  • 23-02-2014, 02:36:33
    #4
    Elinize sağlık güzel bir yazı olmuş. Codeigniter fiyaskosundan sonra yazılımcıların laravel'e yönlenmesi ve laravel'in composer ile çalışması, composer'ın önümüzdeki günlerde adından daha sıkça bahsettireceğini gösteriyor.
  • 23-02-2014, 02:53:10
    #5
    yasarkemaldag adlı üyeden alıntı: mesajı görüntüle
    Elinize sağlık güzel bir yazı olmuş. Codeigniter fiyaskosundan sonra yazılımcıların laravel'e yönlenmesi ve laravel'in composer ile çalışması, composer'ın önümüzdeki günlerde adından daha sıkça bahsettireceğini gösteriyor.
    Sırasıyla Laravel, Symfony gibi çatılar içinde böyle yazılar hazırlamayı düşünüyorum. Şuan Stash hakkında bi' yazı hazırlıyorum.
  • 24-02-2014, 11:32:04
    #6
    bu aralar popüler bir kelimeydi.
    Bilgilendirmeniz iyi olmuş bir çok arkadaş için
  • 25-02-2014, 16:15:43
    #7
    nurettin adlı üyeden alıntı: mesajı görüntüle
    bu aralar popüler bir kelimeydi.
    Bilgilendirmeniz iyi olmuş bir çok arkadaş için
    Teşekkür ederim, yeterli ilgiyi görürse devamı niteliğinde yeni araçları tanıtmaya devam edeceğim.
  • 26-02-2014, 00:19:14
    #8
    Üyeliği durduruldu
    Hic beklemezdim, forumda composer kullanan yazilmcilar gormek cok guzel.


    iPad 'den Tapatalk aracılığı ile gönderildi
  • 28-02-2014, 03:17:57
    #9
    @webvemobil; bizde varız! saklanıyoruz neslimiz tükenmesin diye