Я особо никогда не имел дело с неймспейсами, а тут скачал набор скриптов этот, там всё на неймспейсах (примеры там битые, можете даже не пытаться их использовать). Мой порядок действий: Я распаковал папку PHPStamp в корень своего тестового проекта. В корне создал test.php с содержимым из статьи на Хабре: В начало этого скрипта я добавил "namespace tests;", потому что потому что. Не знаю зачем, интуиция мне подсказала так. PHP: <?php namespace tests; use PHPStamp\Templator; use PHPStamp\Document\WordDocument; $cachePath = 'stuff/'; $templator = new Templator($cachePath); // опционально можно задать свой формат скобочек // Для того чтобы каждый раз шаблон генерировался заново: $templator->debug = true; $documentPath = 'stuff/document.docx'; $document = new WordDocument($documentPath); $values = array( 'simpleValue' => 'I am simple value', ); $result = $templator->render($document, $values); $result->download(); Итог: Код (Text): Fatal error: Uncaught Error: Class 'PHPStamp\Templator' not found in C:\MyStuff\WORK\OpenServer\domains\phpword\www\test.php:8 Stack trace: #0 {main} thrown in C:\MyStuff\WORK\OpenServer\domains\phpword\www\test.php on line 8 Собственно, вопрос! Неймспейсы разве не подгружают за меня нужные файлики? Я сам должен делать require_once? Вот если я добавляю после "namespace tests;" это: PHP: require_once('PHPStamp/Templator.php'); require_once('PHPStamp/Document/WordDocument.php'); То скрипт вроде как крутится дальше, но всё-равно возникает ошибка: Код (Text): Fatal error: Class 'PHPStamp\Document\Document' not found in C:\MyStuff\WORK\OpenServer\domains\phpword\www\PHPStamp\Document\WordDocument.php on line 12 Тут или этот набор скриптов с Git битый/сырой, либо я что-то делаю не так (что более вероятно). Как правильно подключить этот набор скриптов с неймспейсами к своему говнокоду?
Кек, немспейс за тебя пишет логику, апает на релиз и выгружает отформатированные логи нджинкса. autoloader ?
А, вон оно чо. Я раньше видел проекты на неймспейсах, там все файлы инклюдились автоматически и я думал, что так работает "use". Походу там где-то был зарыт autoloader. Сейчас попробую.
Короче я добавил в начале вот такую штуку и она работает как-то. Я не понимаю как, но работает. PHP: spl_autoload_register(function ($className) { if (file_exists($className . '.php')) { require_once $className . '.php'; return true; } return false; });
Композер это ж какая-то хрень для скачивания всяких библиотек? Никогда не понимал какой в ней профит.
Какие зависимости? Это Font Awesome что-ли? jQuery? Зачем их обновлять? Если всё работает - не трогай.
Подход композера "зачем изобретать велосипед, если есть вундервафля танк + мотоцикл + два велосипеда, но крутить уже не ногами" Если конкретно, то это избыточность, которая кушает производительность.
Как правило мотоцикл получается не просто так, а в ходе тестирования и допиливания велосипеда. К примеру, надо утянуть почту по imap и забрать вложения, в теории всё просто, берешь imap_* и качаешь что нужно. На практике же есть криво составленные заголовки, тело письма, через жопу оформленные аттачи и в результате получается тот же самый мопед, но с кучей доморощенных костылей и отовсюду вылезающими ошибками. Но до тех пор, пока не встала задача обрабатывать потоком тысячи писем, попутно конвертируя что нужно и раскладывая по полочкам - можно пилить и свои велосипеды, в наивной уверенности что оно будет лучше и быстрее )