PHP Composer ve Autoloading

Composer, modern PHP geliştirmedeki en önemli araçlardan biridir. Geliştiricilerin paketleri yüklemesine, proje bağımlılıklarını yönetmesine ve her dosyayı manuel olarak gerektirmeden sınıfları otomatik olarak yüklemesine yardımcı olur.

Composer yaygınlaşmadan önce, PHP geliştiricileri sıklıkla birçok PHP kullanıyordu.gerektirirvedahil etmekDosyaları yüklemek için ifadeler. Bu, küçük projelerde işe yaradı ancak uygulamalar büyüdükçe yönetilmesi zorlaştı.

Bu makalede PHP Composer ve otomatik yükleme, Composer’ın ne olduğu, composer. json, paketleri yükleme, vendor klasörü, otomatik yükleme, PSR-4, ad alanları, satıcı paketlerini kullanma, Composer komut dosyaları ve Composer’ın nasıl yapıldığı dahil olmak üzere ayrıntılı olarak açıklanmaktadır. geliştiricileri Laravel ve Symfony gibi çerçevelere hazırlar.

Composer Nedir?

Composer, PHP için bir bağımlılık yöneticisidir. Bağımlılık, projenizin çalışması için ihtiyaç duyduğu bir paket veya kitaplıktır.

Örneğin, bir PHP projesi, e-posta göndermek, ortam değişkenlerini yönetmek, PDF dosyaları oluşturmak, tarihlerle çalışmak, verileri doğrulamak veya HTTP istekleri yapmak için bir pakete ihtiyaç duyabilir. Composer bu paketleri kurabilir ve sürümlerini takip edebilir.

Composer geliştiricilerin şunları yapmasına olanak tanır:

  • PHP paketlerini yükleyin.

  • Paket sürümlerini yönetin.

  • Bağımlılıkları güncelleyin.

  • Paketleri kaldırın.

  • Sınıfları otomatik olarak otomatik yükle.

  • Modern PHP projelerini düzenleyin.

  • Packagist'daki topluluk paketlerini kullanın.

Composer, Laravel, Symfony, PHP Unit, PHP Mailer, Guzzle, Carbon, Monolog ve diğerleri dahil olmak üzere birçok modern PHP çerçevesinde ve aracında kullanılır.

Composer Neden Önemlidir?

Composer önemlidir çünkü modern PHP geliştirmesi büyük ölçüde yeniden kullanılabilir paketlere bağlıdır. Geliştiriciler her şeyi sıfırdan yazmak yerine PHP topluluğu tarafından oluşturulan test edilmiş kitaplıkları kullanabilir.

Örneğin, kendi e-posta kitaplığınızı yazmak yerine bir paket yükleyebilirsiniz. Tam bir HTTP istemcisini manuel olarak oluşturmak yerine Guzzle gibi bir paket yükleyebilirsiniz. Composer, her sınıf dosyasını manuel olarak yüklemek yerine bunları otomatik olarak otomatik olarak yükleyebilir.

Composer ayrıca projeleri daha taşınabilir hale getirir. Başka bir geliştirici projenizi indirdiğinde tek komutla gerekli tüm paketleri kurabilir.

composer install

Bu komut, proje bağımlılık dosyalarını okur ve projenin çalışması için gereken her şeyi yükler.

Composer olmasaydı büyük PHP projelerini yönetmek çok daha zor ve daha az organize olurdu.

Composer’ın Kurulumu

Composer’ı kullanmadan önce bilgisayarınıza veya sunucunuza yüklenmesi gerekir. Kurulumdan sonra terminalde şu komutu çalıştırarak Composer’ın kullanılabilir olup olmadığını kontrol edebilirsiniz:

composer --version

Composer doğru şekilde kurulursa terminal, kurulu Composer sürümünü gösterecektir.

Composer genellikle komut satırından kullanılır. Proje klasörünü terminalde açarsınız ve Composer komutlarını oradan çalıştırırsınız.

Örneğin, Composer’ı yeni bir PHP projesinde başlatmak için şunu çalıştırabilirsiniz:

composer init

Bu komut bir oluşturmanıza yardımcı olurcomposer. jsonProjenizi ve bağımlılıklarını açıklayan dosya.

composer. json

composer. jsondosyası Composer için ana yapılandırma dosyasıdır. Proje bilgilerini, gerekli paketleri, otomatik yükleme ayarlarını, komut dosyalarını ve diğer yapılandırma seçeneklerini saklar.

Basit bir composer. json dosyası şöyle görünebilir:

{
    "name": "adnan/php-learning",
    "description": "A simple PHP learning project",
    "type": "project",
    "require": {
        "php": ">=8.1"
    }
}

isimalan projeyi tanımlar.açıklamaalan projeyi tanımlar.tipalanı paketin bir proje mi, kütüphane mi, eklenti mi yoksa başka bir tür mü olduğunu açıklayabilir.

gerektirirbölümünde projenin gerektirdiği paketler listelenir. Bu örnekte proje PHP sürüm 8.1 veya üzerini gerektiriyor.

Paketleri yüklediğinizde, Composer bu bağımlılıkları içerecek şekilde composer. json dosyasını otomatik olarak günceller.

Paketleri Yükleme

Composer, paketleri kullanarak yükleyebilircomposer requirekomut.

Örneğin, Carbon date kitaplığını yüklemek için şunu çalıştırabilirsiniz:

composer require nesbot/carbon

Bu komutu çalıştırdıktan sonra Composer paketi indirir ve composer. json'a ekler.

{
    "require": {
        "nesbot/carbon": "^3.0"
    }
}

Composer ayrıca şunları oluşturur veya günceller:besteci. kilitdosya. Bu dosya projede kurulu olan tam sürümleri saklar.

Composer ile paketleri yüklemek, dosyaları manuel olarak indirmenize veya kendiniz yönetmenize gerek kalmadan harici kitaplıkları kullanmanıza olanak tanır.

Satıcı Klasörü

Composer paketleri kurduğunda onlarısatıcıklasör. Bu klasör indirilen tüm bağımlılıkları ve Composer’ın otomatik yükleme dosyalarını içerir.

Paketleri kurduktan sonra temel bir proje şöyle görünebilir:

project/
├── composer.json
├── composer.lock
├── index.php
└── vendor/
    ├── autoload.php
    ├── composer/
    └── nesbot/
        └── carbon/

Satıcı klasörü genellikle manuel olarak düzenlenmemelidir. Composer bunu sizin için yönetir.

Birçok projede vendor klasörü Git'e kaydedilmez. Bunun yerine, composer. json ve besteci. lock kaydedilir ve diğer geliştiriciler çalıştırılır.besteci kurulumuvendor klasörünü yeniden oluşturmak için.

Satıcının içindeki en önemli dosyasatıcı/otomatik yükleme. php. Bu dosya, projenizin Composer otomatik yüklemeyi kullanmasına olanak tanır.

Composer Autoloading

Autoloading, PHP sınıflarının kullanıldığında otomatik olarak yüklenmesi anlamına gelir. Otomatik yükleme olmadan, sınıf dosyalarını require veya include kullanarak manuel olarak eklemeniz gerekir.

Örneğin, Composer otomatik yükleme olmadan şunu yazabilirsiniz:

<?php
require "app/Models/User.php";
require "app/Controllers/UserController.php";
require "app/Services/MailService.php";
?>

Proje büyüdükçe bu durum karmaşık hale gelir. Composer bu sorunu bir otomatik yükleyici oluşturarak çözer.

Composer otomatik yüklemeyi kullanmak için bu dosyayı uygulamanın başına bir kez ekleyin:

<?php
require __DIR__ . "/vendor/autoload.php";
?>

Bundan sonra Composer, eğer otomatik yükleme doğru yapılandırılmışsa, paket sınıflarını ve kendi proje sınıflarınızı otomatik olarak yükleyebilir.

Satıcı Paketlerini Kullanma

Composer paketini yükledikten sonra, Composer otomatik yükleyiciyi gerektirerek ve paket sınıfını içe aktararak kullanabilirsiniz.

Örneğin Carbon'u yükledikten sonra şu şekilde kullanabilirsiniz:

<?php
require __DIR__ . "/vendor/autoload.php";

use Carbon\Carbon;

echo Carbon::now();
echo Carbon::now()->addDays(7);
?>

kullanmakifadesi sınıf ad alanını içe aktarır ve Composer sınıfı otomatik olarak yükler.

Bu, Composer’ın ana avantajlarından biridir. Paket dosyalarını manuel olarak bulup eklemenize gerek yoktur. Composer yükleme sürecini yönetir.

Satıcı paketleri birçok gerçek projede e-posta gönderme, hataları günlüğe kaydetme, tarihleri yönetme, PDF oluşturma, ortam dosyalarını okuma, HTTP istekleri yapma ve testleri çalıştırma gibi görevler için kullanılır.

besteci. kilit

besteci. kilitdosya projede kurulu paketlerin tam sürümlerini saklar. Bu dosya önemlidir çünkü kurulumların farklı makineler arasında tutarlı olmasını sağlar.

Örneğin, composer. json şunun gibi bir paket sürümüne izin verebilir:

"nesbot/carbon": "^3.0"

Bu, Composer’ın sürüm kuralına göre uyumlu sürümleri yükleyebileceği anlamına gelir. Ancak besteci. lock tam olarak kurulu sürümü kaydeder.

Başka bir geliştirici çalıştırıldığında:

composer install

Composer aynı sürümleri yüklemek için besteci. lock'u kullanır. Bu, geliştirme, test etme ve üretim ortamları arasında beklenmeyen farklılıkların önlenmesine yardımcı olur.

Çoğu uygulamada, besteci. lock'un Git'e kaydedilmesi gerekir. Yeniden kullanılabilir kitaplıklar için paket stratejisine bağlı olarak karar farklı olabilir.

besteci kurulumu vs besteci güncellemesi

İki yaygın Composer komutu şunlardır:besteci kurulumuvebesteci güncellemesi. Benzer görünüyorlar ama farklı davranıyorlar.

besteci kurulumukomut, varsa besteci. lock'a dayalı bağımlılıkları yükler.

composer install

Bu genellikle bir projeyi ilk kez ayarlarken, bir sunucuya dağıtırken veya bağımlılıkları tam olarak kilit dosyasında tanımlandığı şekilde yüklerken kullanılır.

besteci güncellemesikomut, paketleri composer. json'daki sürüm kurallarına göre günceller ve yeni sürümleri besteci. lock'a yazar.

composer update

Paketleri yükseltebileceği ve değişiklikler getirebileceği için besteci güncellemesini dikkatli kullanın. Üretimde, öngörülebilir dağıtımlar için genellikle besteci kurulumu tercih edilir.

PSR-4 Autoloading

PSR-4, ad alanlarına ve klasör yapısına dayalı olarak PHP sınıflarının otomatik olarak yüklenmesine yönelik bir standarttır. Modern PHP projelerinde yaygın olarak kullanılmaktadır.

PSR-4 ile bir ad alanı öneki bir klasörle eşleşir. Örneğin, ad alanıUygulama\haritalayabiliruygulama/klasör.

Composer. json'da PSR-4 otomatik yükleme şu şekilde yapılandırılabilir:

{
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

Bu, adında bir sınıf anlamına gelirUygulama\Modeller\Kullanıcışu konumda bulunmalıdır:

app/Models/User.php

Otomatik yükleme ayarlarını değiştirdikten sonra şunu çalıştırın:

composer dump-autoload

Bu, Composer'ya otomatik yükleme dosyalarını yeniden oluşturmasını söyler.

PSR-4, sınıf yüklemesinin öngörülebilir ve düzenli olmasını sağlar. Birçok PHP çerçevesi ve paketi tarafından kullanılan standarttır.

Composer içeren ad alanları

Ad alanları sınıfların düzenlenmesine ve adlandırma çakışmalarının önlenmesine yardımcı olur. Composer otomatik yükleme, ad alanlarıyla yakından çalışır.

Örneğin, bir sınıf dosyası oluşturun:

app/Services/GreetingService.php

Sınıf şunu kullanabilir:Uygulama\Hizmetlerad alanı:

<?php
namespace App\Services;

class GreetingService
{
    public function sayHello(string $name): string
    {
        return "Hello, " . $name;
    }
}
?>

PSR-4 otomatik yüklemeyi yapılandırdıktan ve çalıştırdıktan sonrabesteci dökümü-otomatik yüklemesınıf şu şekilde kullanılabilir:

<?php
require __DIR__ . "/vendor/autoload.php";

use App\Services\GreetingService;

$service = new GreetingService();

echo $service->sayHello("Adnan");
?>

Manuel olarak talep etmenize gerek yokTebrikService. php. Composer bunu ad alanına ve dosya yoluna göre otomatik olarak yükler.

besteci dökümü-otomatik yükleme

besteci dökümü-otomatik yüklemekomutu Composer’ın otomatik yükleme dosyalarını yeniden oluşturur. Besteci. json dosyasına otomatik yükleme yapılandırması eklendikten veya değiştirildikten sonra yaygın olarak kullanılır.

composer dump-autoload

Composer oluşturduğunuz bir sınıfı bulamazsa, yaygın çözümlerden biri ad alanını ve dosya yolunu kontrol etmek ve ardından besteci dökümü-otomatik yüklemeyi çalıştırmaktır.

Optimize edilmiş üretim otomatik yüklemesi için Composer şunları sağlar:

composer dump-autoload -o

-oseçeneği optimize edilmiş otomatik yükleme anlamına gelir. Bir sınıf haritası oluşturarak performansı artırabilir.

Birçok dağıtım iş akışında, üretim uygulamaları için optimize edilmiş otomatik yükleme kullanılır.

Autoloading Dosyaları

Composer ayrıca belirli PHP dosyalarını otomatik olarak yükleyebilir. Bu, genel yardımcı işlevler için kullanışlıdır.

Örneğin bir yardımcı dosya oluşturun:

app/helpers.php

Daha sonra onu composer. json'a ekleyin:

{
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "files": [
            "app/helpers.php"
        ]
    }
}

Composer. json'u düzenledikten sonra şunu çalıştırın:

composer dump-autoload

Artık Composer otomatik yükleyici gerektiğinde yardımcı dosya otomatik olarak yüklenecektir.

Bu yaklaşım genellikle küçük yardımcı işlevler için kullanılır ancak dikkatli kullanılmalıdır. Çok fazla global fonksiyon bir projenin sürdürülmesini zorlaştırabilir.

Geliştirme Bağımlılıkları

Bazı paketlere üretim aşamasında değil, yalnızca geliştirme aşamasında ihtiyaç duyulur. Örnekler arasında test araçları, kod biçimlendiriciler, statik analizörler ve hata ayıklama paketleri yer alır.

Composer, geliştirme paketlerinigerektir-geliştirmebölüm.

Bir paketi geliştirme bağımlılığı olarak kurmak için şunu kullanın:

composer require --dev phpunit/phpunit

Composer. json dosyası daha sonra şunları içerebilir:

{
    "require-dev": {
        "phpunit/phpunit": "^11.0"
    }
}

Üretim dağıtımı için geliştirme paketleri aşağıdakiler kullanılarak atlanabilir:

composer install --no-dev

Bu, üretim kurulumlarını daha küçük tutar ve sunucuya ihtiyaç duyulmayan araçların kurulmasını önler.

Composer Komut Dosyaları

Composer komut dosyaları, geliştiricilerin composer. json içinde özel komutlar tanımlamasına olanak tanır. Bu komut dosyaları testler, biçimlendirme, önbelleği temizleme veya kurulum komutlarını çalıştırma gibi ortak proje görevlerini çalıştırabilir.

Örnek composer. json komut dosyaları:

{
    "scripts": {
        "test": "phpunit",
        "serve": "php -S localhost:8000 -t public",
        "autoload": "composer dump-autoload"
    }
}

Bunun gibi bir komut dosyasını çalıştırabilirsiniz:

composer test

Veya:

composer serve

Composer komut dosyaları, ekip üyelerinin aynı komutları kolayca çalıştırabilmesi için proje komutlarının standartlaştırılmasına yardımcı olur.

Çerçeveler ve paketler ayrıca kurulum veya güncellemeler sırasında kurulum görevlerini otomatik olarak çalıştırmak için Composer komut dosyalarını da kullanır.

Sürüm Kısıtlamaları

Composer, hangi paket sürümlerine izin verildiğine karar vermek için sürüm kısıtlamalarını kullanır. Sürüm kısıtlamalarını anlamak bağımlılık sorunlarının önlenmesine yardımcı olur.

Yaygın örnekler şunları içerir:

  • ^3.0:3.0'dan 4.0'a kadar olan uyumlu sürümlere izin verin.

  • ~3.1:kurala bağlı olarak 3.1'den 4.0'a kadar olan ancak 4.0'ı içermeyen sürümlere izin verin.

  • 3.2.1:tam olarak 3.2.1 sürümünü gerektirir.

  • *:genellikle önerilmeyen herhangi bir sürüme izin verin.

Örnek:

{
    "require": {
        "nesbot/carbon": "^3.0"
    }
}

Makul sürüm kısıtlamalarının kullanılması, beklenmedik büyük değişikliklerden kaçınırken paketlerin güncel tutulmasına yardımcı olur.

Paketleri Kaldırma

Bir pakete artık ihtiyaç duyulmuyorsa, kullanılarak kaldırılabilir.besteci kaldır.

composer remove nesbot/carbon

Bu komut, paketi composer. json'dan kaldırır, besteci. lock'u günceller ve başka bir bağımlılığa ihtiyaç duyulmuyorsa paket dosyalarını vendor klasöründen kaldırır.

Kullanılmayan paketleri kaldırmak iyi bir alışkanlıktır çünkü projeyi daha küçük, daha temiz ve bakımı daha kolay hale getirir.

Kurulu Paketleri Kontrol Etme

Composer, kurulu paketleri aşağıdakileri kullanarak gösterebilir:

composer show

Belirli bir pakete ilişkin bilgileri göstermek için:

composer show nesbot/carbon

Bu, paket sürümlerini, açıklamalarını, bağımlılıklarını ve diğer bilgileri kontrol etmenize yardımcı olabilir.

Composer ayrıca güncel olmayan paketleri de kontrol edebilir:

composer outdated

Bu komut hangi paketlerin daha yeni sürümlere sahip olduğunu görmenize yardımcı olur.

Composer ve Git

Composer’ı Git ile kullanırken, taahhüt etmek yaygındır.composer. jsonvebesteci. kilit, ama değilsatıcıklasör.

Tipik bir.gitignoredosya şunları içerir:

/vendor/

Diğer geliştiriciler projeyi kopyalayıp çalıştırabilir:

composer install

Bu, besteci. lock'a dayalı olarak gerekli tüm paketleri yükler.

Composer. lock'un kaydedilmesi, tüm geliştiricilerin ve sunucuların aynı paket sürümlerini kullanmasını sağlamaya yardımcı olur.

Composer Üretimde

Bir PHP projesini üretime dağıtırken Composer dikkatli kullanılmalıdır. Yaygın bir üretim yükleme komutu şöyledir:

composer install --no-dev --optimize-autoloader

--no-devseçenek geliştirme paketlerini atlar.--optimize-otomatik yükleyiciseçeneği otomatik yükleme performansını artırır.

Üretimde, rastgele paket güncellemelerini doğrudan sunucuda çalıştırmaktan kaçının. Geliştirme aşamasında paketleri güncellemek ve test etmek, besteci. lock'u işlemek ve ardından test edilen sürümleri dağıtmak daha güvenlidir.

Üretim sunucuları ayrıca gerekirse composer. json gibi hassas dosyaları, ortam dosyalarını, günlükleri ve yapılandırma dosyalarını genel erişimden korumalıdır.

Yaygın Composer Sorunları

Yeni başlayanlar bazı genel Composer sorunlarıyla karşılaşabilir. Nedenlerini anlamak onları düzeltmeyi kolaylaştırır.

Yaygın sorunlar şunları içerir:

  • Sınıf bulunamadı:ad alanı veya dosya yolu yanlış olabilir veya otomatik döküm yüklemesi gerekiyor.

  • Paket sürümü çakışması:iki paket uyumsuz sürümler gerektirebilir.

  • PHP sürüm uyuşmazlığı:paket daha yeni bir PHP sürümü gerektirebilir.

  • Eksik uzantı:bir paket, yüklü olmayan bir PHP uzantısı gerektirebilir.

  • İzin sorunları:Composer, satıcı veya önbellek klasörlerine yazılamayabilir.

Sorun gidermeye yönelik yararlı komutlar şunları içerir:

composer diagnose
composer dump-autoload
composer show
composer outdated

Composer hata mesajlarını dikkatlice okumak önemlidir çünkü bunlar genellikle soruna hangi paketin, PHP sürümünün veya uzantının neden olduğunu açıklar.

Composer ve Modern PHP Proje Yapısı

Composer daha temiz bir proje yapısını teşvik eder. Basit bir Composer tabanlı PHP projesi şöyle görünebilir:

project/
├── app/
│   ├── Controllers/
│   ├── Models/
│   └── Services/
├── public/
│   └── index.php
├── tests/
├── vendor/
├── composer.json
└── composer.lock

uygulamaklasör uygulama sınıflarınızı içerir.kamuklasör web giriş noktasını içerir.satıcıklasör Composer paketlerini içerir.testlerklasör otomatik testler içerir.

PSR-4 otomatik yükleme ile uygulama klasörü içindeki sınıflar, ad alanları kullanılarak otomatik olarak yüklenebilir.

Bu yapı, uygulamaları düzenleyen PHP çerçevesinin sayısına benzer.

Composer ve Laravel

Laravel büyük ölçüde Composer'ya bağlıdır. Bir Laravel projesi oluşturduğunuzda, Composer, Laravel çerçevesini ve gerekli tüm bağımlılıkları yükler.

Bir Laravel projesi aşağıdakiler için Composer’ı kullanır:

  • Çerçeve paketlerinin kurulumu.

  • Satıcı bağımlılıklarını yönetmek.

  • Autoloading uygulama sınıfları.

  • Composer komut dosyalarını çalıştırma.

  • Geliştirme araçlarının kurulumu.

  • Paket keşfini yönetme.

Laravel'nun uygulama klasörü ad alanlarını ve Composer otomatik yüklemeyi kullanır. Örneğin, bir sınıftauygulama/Hizmetlerad alanını kullanabilirUygulama\Hizmetler.

Composer’ı anlamak, Laravel'nun anlaşılmasını kolaylaştırır çünkü birçok Laravel özelliği, Composer paket yönetimi ve otomatik yükleme üzerine kurulmuştur.

Composer için En İyi Uygulamalar

İyi Composer alışkanlıkları, PHP projelerinin istikrarlı ve sürdürülebilir kalmasına yardımcı olur.

Önemli en iyi uygulamalar şunları içerir:

  • Uygulamalar için composer. json ve besteci. lock'u işleyin.

  • Satıcı klasörü içindeki dosyaları manuel olarak düzenlemeyin.

  • Dağıtım için besteci kurulumunu kullanın.

  • Besteci güncellemesini dikkatli kullanın ve güncellemelerden sonra test edin.

  • Yalnızca geliştirme paketleri için require-dev kullanın.

  • Proje sınıfları için PSR-4 otomatik yüklemeyi kullanın.

  • Otomatik yükleme ayarlarını değiştirdikten sonra besteci dökümü-otomatik yüklemeyi çalıştırın.

  • Besteci dosyalarına hassas kimlik bilgilerini aktarmayın.

  • Kullanılmayan paketleri kaldırın.

  • Uyumluluğu test ettikten sonra bağımlılıkları güncel tutun.

Composer güçlüdür ancak disiplinle kullanılmalıdır. İyi bağımlılık yönetimi projelerin zaman içinde güvenilir olmasını sağlar.

Composer Otomatik Yükleme Örneğini Tamamlayın

Aşağıdaki örnek, PSR-4 otomatik yüklemeyi kullanan basit bir Composer tabanlı projeyi göstermektedir.

Klasör yapısı:

project/
├── app/
│   └── Services/
│       └── GreetingService.php
├── public/
│   └── index.php
├── vendor/
├── composer.json
└── composer.lock

composer. json:

{
    "name": "adnan/php-composer-demo",
    "description": "Simple Composer autoloading demo",
    "type": "project",
    "require": {
        "php": ">=8.1"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        }
    }
}

app/Services/GreetingService. php:

<?php
namespace App\Services;

class GreetingService
{
    public function message(string $name): string
    {
        return "Hello, " . $name . ". Welcome to Composer autoloading.";
    }
}
?>

public/index. php:

<?php
require __DIR__ . "/../vendor/autoload.php";

use App\Services\GreetingService;

$service = new GreetingService();

echo $service->message("Adnan");
?>

Composer. json'u oluşturduktan veya düzenledikten sonra şunu çalıştırın:

composer dump-autoload

Bu örnek, Composer’ın ad alanlarını ve PSR-4'yu kullanarak kendi sınıflarınızı otomatik olarak nasıl yükleyebileceğini gösterir.

Composer için Güvenlik Notları

Composer harici paketlerden kod indirir ve çalıştırır; dolayısıyla bağımlılık güvenliği önemlidir.

Önemli güvenlik uygulamaları şunları içerir:

  • Güvenilir kaynaklardan paketleri yükleyin.

  • Paketin popülerliğini, bakımını ve belgelerini inceleyin.

  • Testten sonra bağımlılıkları güncel tutun.

  • Kullanılmayan paketleri kaldırın.

  • Sırları composer. json'a veya komut dosyalarına aktarmayın.

  • Bilinmeyen paketlerdeki Composer komut dosyalarına karşı dikkatli olun.

  • Bilinen güvenlik açıklarını kontrol etmek için mümkün olduğunda besteci denetimini kullanın.

Aşağıdakileri kullanarak bilinen güvenlik sorunlarını kontrol edebilirsiniz:

composer audit

Bağımlılık güvenliği uygulama güvenliğinin bir parçasıdır. Savunmasız bir paket tüm projeyi etkileyebilir.

Sonuç

Composer, modern PHP geliştirmede temel bir araçtır. Bağımlılıkları yönetir, paketleri yükler, otomatik yükleme dosyaları oluşturur, PSR-4 otomatik yüklemeyi destekler ve profesyonel PHP projelerinin düzenlenmesine yardımcı olur.

Autoloading, geliştiricilerin her dosyayı manuel olarak gerektirmeden sınıfları kullanmalarına olanak tanır. PSR-4, ad alanlarını klasör yapısına bağlayarak projeleri daha temiz ve bakımı kolay hale getirir.

Composer ve otomatik yüklemeyi öğrendikten sonraki adım, küçük bir Composer tabanlı PHP MVC projesi oluşturarak, bir paket yükleyerek, PSR-4'yu yapılandırarak, ad alanlı sınıflar yazarak ve Composer komut dosyalarını kullanarak pratik yapmaktır. Bu beceriler, Laravel, Symfony, test etme ve profesyonel PHP geliştirme konularına derinlemesine geçmeden önce gereklidir.