PHP composer - PSR-4 Autoloader [2]

PHP composer - PSR-4 Autoloader [2]

V minulé lekci jsem provedli inicializaci composeru do souboru composer.json. Nyní si ukážeme jak composerem nastavit PSR-4 autoloader (Autoloading).


Mějme v PHP aplikaci třeba tuto strukturu:
Adresář app a v něm soubory Home.php a Contact.php, které používají namespace App\;

Bez autoloaderu tříd, bychom museli provést require:

require __DIR__ . "/app/Home.php";
require __DIR__ . "/app/Contact.php";

 

PSR-4 autoloader

Když však chceme používat autoloader dle specifikace PSR-4, tak nám stačí upravit composer.json:

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

 

Následně spustíme
composer dump-autoload -o

Tím se vytvoří soubory pro autoloading a v naší aplikaci pak postačí:
require_once('vendor/autoload.php');

Komentáře

Vaše reakce na PHP composer - PSR-4 Autoloader [2]
PUd:l
#1916

01.06.2024 [1]
Ahoj,

chci instalovat něco přes composer a mám chybu:

composer create-project -s dev contributte/apitte-skeleton
-----------
Could not find package contributte/apitte-skeleton with stability dev in a version installable using your PHP
version, PHP extensions and Composer version.

Můžu tu chybu, že mám php8.0 a potřebuji php8.1 nějak ignorovat a přesto provést instalaci?





Hanz
#1921

01.06.2024 [2]
Poslední komentář Reakce na komentář #1916
Ahoj,

ano, jednoduše to můžeš vyřešit tímto ignore na verzi php:

composer create-project -s dev contributte/apitte-skeleton --ignore-platform-req=php

Související obsah

lekce-composer

php

composer

programovani

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.