daha önceki yazımda sizlere composer nedir ve composer kullanarak bir kütüphane nasıl indirilir anlatmıştım. bu yazımda ise sizlere oluşturmuş olduğunuz projenin (kütüphane-kodlar bütünü) composer ile kullanılmasının nasıl sağlanacağını anlatmaya çalışacağım.
konu anlatımını bir üzerinden göstereceğim bunun için örnek kodlarımı içeren php dosyasının içeriğini hemen altta paylaşıyorum.
dosya adi: token_uret.php
dosya içeriği:
<?php
/**
* [tokenUret her çalıştırıldığından benzersiz karakterlerden oluşan bir değer üretir.]
* @param [string|int] $tuz [fazladan değer karıştırıcı boş bırakılabilir]
* @return [string] [token]
*/
function tokenUret($tuz=””){
return md5(sha1(uniqid().$tuz));
}
dosyanın çalıştırılması:
echo tokenUret(“karışık-kelime”);
dosyanın çıktısı:
19e1bb0dc153202db022255bf87387df
şimdi yukarıdaki dosyayı biz projelerimizde kullanabiliriz.(şuan nerede nasıl kullanırız konumuz değil)
fakat biz bu kodlarımızın başka insanlar tarafından da kullanılmasını istersek kodlarımızı paylaşıma açmalıyız. bu paylaşıma açma işini github gibi sistemler üzerinden yaparız.
projeyi githuba attığımı kabul edelim. herhangi bir kullanıcı githubdan kodlarımızı alır ve sistemine entegre ederse sorun yok fakat güncellemeleri otomatik olarak alamaz demiştik daha önceki yazımızda.
işte bu nedenle ben öncelikle githuba atacağım kodlarımın composerin kullanımı için composer.json dosyasını oluşturacağım.
daha sonra githuba yükleyeceğim
bunları yaptığımda insanlar benim kodlarımı projelerine composer vasıtası ile entegre edebilirler.
bunun yanında php kütüphanelerinin bulunduğu https://packagist.org/ adresine de yükleyeceğim.
başlıyorum.
öncelikle githubda bir repo oluşturdum.
oluşturduğum repoyu local bilgisayarıma çektim.
(bu kısımlara bu yazımda fazladan uzamaması için yer vermiyorum bir başka yazıda değineceğim)
ekran görüntüsü
şimdi bu dizin içinde composer.json dosyası oluşturacağım.
composer.json içeriği:
{
“name”:”mustafayilmazist/composer_olusturmak”,
“type”:”project”,
“description”:”Token Üretici”,
“keywords”:[“Token”,”üretici”],
“homepage”:”https://github.com/mustafayilmazist/composer_olusturmak”,
“license”:”MIT”,
“authors”:[
{
“name”:”Mustafa Yılmaz”,
“email”:”iletisim@yazilimekip.com”
}
],
“require”:{
“mustafayilmazist/composer_olusturmak”:”~1.0″
}
}
buradaki seçeneklerin hepsi yazılmak zorunda değil. bu konuda detaylı bilgiyi https://getcomposer.org/doc/04-schema.md#json-schema adresinden alabilirsiniz.
composer.json dosyasını oluşturduktan sonra bu dosyayıda githuba atmamız gerekli.
ben bu işlemi yaptım.(burada değinmiyorum)
projenin githubdaki son halinin görseli:
şimdi burada bulunan projeyi herhangi bir kullanıcı projesine dahil etmek isterse:
git clone https://github.com/mustafayilmazist/kodlari_composera_eklemek.git komutlarını kullanabilir.
ama daha önce de bahsettiğim gibi güncellemeleri otomatik alabilmesi ve kodlarımızın daha fazla kişiye ulaşabilmesi için şimdi https://packagist.org/ adresine de yüklemesini yapalım.
bunun için githubda projemizi açtıktan sonra adres satırını olduğu gibi kopyalayalım
örnek:
https://github.com/mustafayilmazist/kodlari_composera_eklemek
daha sonra
https://packagist.org/ adresine girelim (burada bir üyelik açtığınızı ve giriş yaptığınızı kabul ediyorum)
bu adreste aşağıdaki görselde bulunan sağ ikinci sıradaki submit linkine tıklıyoruz.
karşımıza gelen ekrandaki kutuya github adresini yapıştırıyoruz.
görseli:
ve check butonuna tıklıyoruz.
karşımıza gelen ekran aşağıdaki gibi:
son olarak submit i tıklıyoruz ve aşağıdaki gibi bir ekranla karşılaştıysak işlem tamamdır.
üstteki ekran bize işlemin tamam olduğunu söylerken bu paketin otomatik github ile senkronize olmasını ayarlamamız gerektiğini de söylüyor.
artık işlem tamam.
herhangi bir kullanıcı komut satırından
composer create-project mustafayilmazist/kodlari_composera_eklemek
komutunu kullanırsa kodlarımızı projesine dahil edebilir.
son olarak önemli bir uyarı yapayım,
projelerinizi bitirmeden yani henüz proje aşamasında olan kodlarınızı https://packagist.org/ adresine atmanız önerilmez, bu nedenle ben attığım projeyi https://packagist.org/ adresinden kaldırdım.