Только знакомлюсь с композером и юнит тестами. Установил юнит тесты через композер. Так выглядит json-файл:
{
"require": {
"symfony/var-dumper": "dev-master",
"phpunit/phpunit": "^7.4"
}
}
При попытке создать класс унаследованный от PHPUnit_Framework_TestCase я получил fatal error - что такой класс не найден..
На офоц. сайте PHPUnit, увидел такую запись \PHPUnit\Framework\TestCase - которая помогла:
class AppTest extends \PHPUnit\Framework\TestCase {...}
Насколько я понял, это связано со стандартами psr-0 и psr-4 ? Как это настраивается для композера? В каких случаях можно один вид записи использовать, в каких - второй (через нижнее подчеркивание вместе обратного слэша)? В чем преимущества одного и второго?
Также хотел понять, можно ли менять расположение папки vendor композера, как это делать, и чем чревато?
Как вы верно ответили существует два стандарта автозагрузки в php psr-0 и psr-4. Psr-4 это обновлённый улучшенный psr-0. Одно из важных различий является загрузка через _ например:
Такая автозагрузка встречается для устаревшего фреймворка zend framework 1. Настраевается в composer:
"autoload": {
"psr-0": {
"Zend_": "library/"
}
},
Для psr-4 пример: - Файл находится в /src/classes/Test.php должен вызваться Src/Classes/Test
Настраивается:
"autoload": {
"psr-4": {
"": "src/"
}
},
Не забывайте что для стандарта psr-2 для длинных названий класса следует использовать:
use \PHPUnit\Framework\TestCase as TestCase;
class AppTest extends TestCase {}
Vendor можно поменять, но обычно меняют в случае необходимости: https://getcomposer.org/doc/06-config.md#vendor-dir
"config": {
"vendor-dir": "libs"
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите пожалуйста, есть тег <input name="upload[]" type="file" multiple="multiple" /> Как сделать условие php если input имеет файлВопрос так и не решен
Пытаюсь сделать выгрузку товаров из корзины магазина с помощью PHPExcel