Я только начал пользоваться им, немного не понимаю use, namespaces
Мне нужно автоматом загрузить классы и файл, который их использует и подключиться к бд, как это правильно сделать?
Если кто может ответить в телеге, оставьте ее в комментариях
4sadly, если у вас все файлы лежат в одном месте - то да. НО я бы лучше глянул в сторону PSR-4 и взял автолоадер из самого стандарта. Ну а вообще речь про композер, то достаточно подключить vendor/autoload.php и все что внутри него будет доступно автоматически.
kruslan, если мы говорим про проект с готовой инфраструктурой (фреймворк/cms), то да, там можно не париться про ручное подключение. Но если мы говорим про какие-то подобные вещи (где нужно руками подцеплять файлы), то нужно будет вспомнить include/require и autload'er
Про композер указано у вас в вопросе. Если вы его уже используете, то просто подключаете vendor/autload.php и все. Но потом вы пишите про пространство имен, и поэтому не понятно в композере ли дело.
4sadly, вам нужно разобраться с некоторым вопросами:
1. что такое пространство имен (ссылки в ответе)
2. почитать про автолоадер (ссылки там же)
3. потом попробовать подключить какой-нибудь проект (например monlog: https://github.com/Seldaek/monolog )
4. попробовать запустить конструкцию Basic Usage того же монолога.
Если эти шаги у вас не вызывают вопросов, и вы понимаете что происходит - значит все ок. Иначе - го 1 шаг
kruslan, композер работает хорошо внутри себя (то есть подключает все что внутри vendor), а сам скрипт которых находится вне вендора и его скрипты тоже надо бы как-то подключать. Про это речь.
4sadly, "все классы" из композера: include vendor/autoload.php, "все классы" в приложении: автолоадером
4sadly, да, в "точке входа" приложения подключаете композер и далее уже либо через автолоадер (либо инклудом) подключается нужные файлы самого приложения
Илья, смотря как читать и какой у вас уровень. Эта книга, преимущественно для тех кто знает основы языка, но плохо знает ооп. Для прям очень джунов, желающих стать пре-мидлами.
Тех. литературу нужно читать сидя у компьютера и переписывая весь код, что есть в учебнике в ручную. Без закрепления всего что читаешь на практике никакого результата не будет.
Что касается времени, достигая определенный уровень по другому вы просто не сможете получить новые знания. Никаких курсов, видеоуроков нет на те темы, которые нужны мидлу что бы вырасти (один вариант - конференции, но если их посещать возможности нет, то остаются книги). Так что у вас есть выбор: читать много воды (а многие авторы имеют отца водопада) и вычлинять 1% знаний или не получать знаний вообще.
Хотя есть и авторы, которые воду не льют и делают не просто что бы деньги заработать, но таких единицы.
Но никогда не бойтесь не получить (или получить бесполезные) знания делая что-то. Бойтесь не получить, не делая ничего.
Александр, ну вот я больше со стороны бесполезности исключительно теоритических знаний спрашивал. Как по мне нет смысла читать книги, нужно решать практические задачи и уже на основе поставленных искать ответы (в тех же самых книгах НО только нужную информацию, а не всю книгу от корки до корки).
Илья, как можно решать практические задачи без теории? Как вы будете решать квадратное уравнение без знания формулы дискриминанта? Поэтому все задачи которые вы решили, были решены благодаря теоретическим знаниям, которые получили ранее. Скорее всего они были получены во время просмотра видео уроков в перемешку с практикой, но они были получены.
Теория без практики и правда бесполезна. Но практика без теории невозможна! В книгах не дается сухой теоретический материал, это не химия в школе. Все что дается в книгах предлагается сразу закреплять на практике примерами кода. Что бы понять материал, при отсутствии задач в книге, вы должны сами их выдумывать. При том чем сложнее, тем лучше.
На счет задач. Представьте, у вас есть задача - написать апи для крупного приложения, вы не знаете ни про ОПП, ни про паттерны, ни про фреймворки. Да и для решения задачи этого знать не нужно. Вы пишите в привычном процедурном стиле. В конце-концов, через месяц после запуска такого приложения вы замечаете, что апи кладет сервер. Кладет его часто и серьезно, при том ваши конкуренты используют сервера более дешевые и имеют большее число юзеров. Вы приходите к ним и узнаете, что они используют не apache, а nginx. Вы не сталкивались с проблемами apache до этого, приходите в офис, смотрите код, а оказывается там все привязанно к апачу и перенести на nginx все это дело, да еще и настроить его, протестировать займет несколько недель. Поправили. Уф, вроде нагрузка уменьшилась. И тут вы ложитесь спать, раздается звонок. На том конце директор орет: Илья, у нас базу сперли, пишут отправить им 3 биткоина до конца недели, а то все будет удалено. Илья, что делать??? Вы лезете на форум, гуглите, оказывается это была sql инъекция. Уязвимость старая, простая, но вам она ранее не была известна и поэтому во время решения задачи не учитывалась. Вы лезете в код править. Вот только из-за того что вы налепили велосипед, вам уже сложно в нем ориентироваться, тогда для помощи вам дают еще одного разраба. Теперь у вас возникают проблемы работы с одним файлом на сервере. Вы решаете разделить время работы за файлами, вы ведь просто не знаете что такое гит и не знаете, что такую задачу кто-то решал. Протестили, круто, но потом к вам приходит джун и говорит: А чеб вам юнит тесты не подпилить? Вы в изумлении: какие юнит тесты? У меня все задачи можно было решить без их использования. А потом всплывает необходимость докера... и так далее и так далее.
Вы просто не знаете того что что-то не знаете. Книги и метапы - это способы узнать об этом. Задачу можно решить миллионом разных путей, но у вас есть 2 - использовать тот что знаете или тот что оптимальный.
Забудьте про такое понятие как "бесполезные знания", нет бесполезных знаний. Они вам сейчас могут не требоваться, но в будущем вы можете в них нуждаться. В универе я думал, что черный квадрат - бесполезная вещь, пока на работе меня не попросили его сделать. Я уже писал. Выбирайте: получить знания которые не пригодятся или не получить те, что потребуются.
Александр, ну это прям крайность) Я имел ввиду что схема "сначала проблема - затем ищем решение", гораздо лучше чем "изучаем решения - потом применяем на практике но не факт что пригодится".
По поводу вашего примера: не совсем так. Поставили задачу, ты думаешь как ее решить (с учетом твоего текущего багажа знаний). Если ты никогда не сталкиваться - идешь гуглить (видосы, статьи, книги!), НО ты ищешь конкретные вещи, которые могут тебе пригодиться, а не всю информацию из книги от корки до корки. То есть решение проблем (получение знаний) по мере их поступления (необходимости этих знаний) гораздо эффективнее чем подготовка к решению проблем которые не факт что вообще наступят (зато при таком варианте ты будешь более готовым к этим проблемам).