Не мога да заредя класове php-ds в PHP 7, тъй като получавам фатална грешка: класът не е намерен

Аз съм нов в разработката на PHP 7 и започнах да работя с Composer и PHP. Трябва да използвам PHP 7 Data структура като Vector и Stack и т.н. За целта създадох composer.json в основната си директория, за да изисквам php DS. След инсталирането на композитора той създаде папка, наречена Vendor, и папката PHP ds е вътре в нея.

Използвам кода по-долу във файл robots.php в основната директория.

<?php
use Ds\Stack;
use Ds\Vector;

$Vector = new Vector();

$stack = new  Stack(); 

Получавам фатална грешка, че класът не е намерен. Не знам как работи напълно автоматичното зареждане. Ще мога ли да извикам тези класове от моя php файл в основната папка?


person bodi87    schedule 27.09.2019    source източник
comment
Трябва да require_once 'vendor/autoload.php' в горната част на файла.   -  person TheGentleman    schedule 27.09.2019


Отговори (2)


Автоматично зареждане

За библиотеки, които указват информация за автоматично зареждане, Composer генерира vendor/autoload.php файл. Можете просто да включите този файл и да започнете да използвате класовете, които тези библиотеки предоставят, без допълнителна работа:

require __DIR__ . '/vendor/autoload.php';

use Ds\Stack;
use Ds\Vector;

$Vector = new Vector();

$stack = new  Stack(); 

Предлагам ви да разгледате https://getcomposer.org/doc/01-basic-usage.md

person Azael    schedule 27.09.2019

Това е така, тъй като Php DS е PHP разширение, първо трябва да го инсталирате.

$ apt-get install php7.4-ds

Това може да ви помогне:

Има и пакет polyfill, това означава, че класовете Php Ds ще бъдат налични дори ако разширението не е инсталирано, въпреки че предполагам, че това има някои разходи за производителност.

person jawira    schedule 06.11.2020