У вас очень хорошие уроки. Часто помогают, когда нужно разобраться с детальностью изучения какой-то темы. Было бы круто, увидеть от вас детальный разбор .htaccess или например работы с websoket. :)
@@matroskin978 Мне кажется, я ваш голос где-то уже на другом канале слышал. У вас нет ещё одного ютуб канала? Просто на этом канале подозрительно мало подписчиков, а контент хороший.
@@dreamypioneer3760 скорее всего, Вам не кажется 🙂 Около 10 лет я сотрудничал с проектом WebForMyself, вместе с которым записал огромное количество уроков и курсов, как бесплатных так и коммерческих. Чуть менее года тому я открыл свой канал, который теперь и развиваю. Поэтому на канале не так много подписчиков, поскольку каналу по факту пока меньше года. Хотелось бы, конечно, более активного развития... но как есть пока 😏
Здравствуйте, Андрей! Спасибо огромнейшее за Ваши уроки я от начала и до конца смотрю несколько раз) все понятно и доходчиво! Лайк и респект Вам, еслиб оффлайн преподавали я бы учился у Вас 😊
Пожалуйста 🙂 Оффлайн занимаюсь и индивидуально. В первую очередь мне интересен как раз начальный уровень учеников. Поэтому, если интересно, то можно написать на matroskin978@gmail.com
Спасибо, всё отлично. Если интересно вам будет, через новый Open Server 6, всё работает без .htaccess, при подключении выдаёт ошибку, единственное ваша папка public уже не нужна, она уже есть Open Server. Посмотрю что будет дальше по ходу изучения ваших уроков. Подключал Server по вашему видео.
Пожалуйста) В предыдущих версиях Open Server также можно было обойтись без .htaccess, указав в настройках домена корневую папку. Файл .htaccess я показал для тех случаев, когда нет доступа к настройкам сервера.
Всё-таки вы правы, дошёл до следующего урока без htaccess не получается, только главная показывается и всё. Только с htaccess работает всё. Ещё раз спасибо.
Андрей здравствуйте, не подскажите в чем разница подключения файлов через dir, require __DIR__ . '/func.php'; и просто require 'func.php'; вроде бы работает и так и так, и как лучше?? Спасибо!
@@ТОЛЬКОПОБЕЗДОРОЖЬЮ Здравствуйте! Я предпочитаю первый вариант, в этом случае будет использоваться абсолютный путь к файлу, т.е. полный путь. Каких-то неожиданных проблем в этом случае не будет. Во втором случае используется относительный путь. Если это простое включение одного файла в другой, то тоже никаких проблем не будет. Но если используется некоторая вложенность при подключении, т.е. из одного файла подключается второй, из второго - третий и т.д., тогда возможны нюансы. И чтобы их избежать - я предпочитаю использовать абсолютный путь. Еще лучше вместо константы __DIR__ использовать собственные константы с абсолютными путями. Это позволит безболезненней менять структуру проекта при необходимости.
Андрей подскажите пожалуйста. Почему phpstorm постоянно подчёркивает константу define и предлагает её определить как const? Что в php 8.3 define уже не будет работать?
Функция define() никуда не денется, хотя бы потому, что в ней нет некоторых ограничений, которые есть в const. Поэтому можете использовать как define(), так и const. PhpStorm просто предлагает переопределить там, где это возможно, define() на const, потому что const - это более новая возможность языка и более универсальная, поскольку const можно использовать и внутри классов. Поэтому используйте любой вариант - ошибкой не будет.
Нет, файл .htaccess - это файл именно под Apache для изменения некоторой конфигурации на лету. Для Nginx все делается в своем файле конфигурации. В следующем уроке в комментариях предлагали конфигурацию под Nginx - посмотрите, если интересно, возможно подойдет.
Именно про это и спрашивал, спасибо. Что посоветуете еще посмотреть/почитать для углубления знаний и получения навыков реальной разработки на PHP? Спасибо, что отвечаете спустя столько времени после выхода видео.@@matroskin978
Посмотреть посоветовал бы свои курсы, но они платные. А вот почитать, увы, ничего не посоветую в плане процедурного PHP. Все, что видел, это пересказ документации, по сути. По ООП могу рекомендовать книгу Мэтта Зандстры.
Андрей, вы ввели константу define("PUBLIC", ROOT . '/public'); Я попытался вывести ее на печать через функцию dd() или использовать ее при подстановке в операторе include, везде работа программы прекращается и выдаются ошибки типа: Parse error: syntax error, unexpected token ")", expecting ":" in C:\OpenServer\domains\test.loc\public\index.php on line 13 Parse error: syntax error, unexpected token "public" in C:\OpenServer\domains\test.loc\public\index.php on line 13 Не позволяет использовать зарезервированное слово.
Да, Вы абсолютно правы, public - это зарезервированное слово и использовать его для именования констант - нельзя. На автомате сделал это по имени папки. В 9-ом уроке я исправлюсь и переименую константу с PUBLIC на WWW. Вы можете это сделать раньше 😉
Добрый день. Я делал не через бутстрап и у меня стили так и не подключились. Какие-бы пути не указывал в header, ничего не работает. Даже через отдельную константу не работает. Хотя в шаблоне header, sidebar, footer подключаются без проблем. Кто подскажет, что нужно делать?
Андрей, огромное спасибо за ваши уроки!!! Не могли бы помочь с такой проблемой: после добавления файлов .htaccess перестали работать ссылки...При клике на любую из ссылок ничего не происходит. ОООчень много всего перепробовал и никак не получается решить проблему. Даже, тупо, скачал исходники 3 урока и всё равно ничего не работает.
Пожалуйста) В настройках Open Server, если используете его, проверьте, включен ли модуль Apache. Если не включен - включите с соответствующей версией PHP. Это делается во вкладке Модули. Это все, что могу подсказать, не работая с вашим приложением и окружением.
@@matroskin978 Использую Open Server 6. В руководстве написано: Apache + PHP: Выберите только модуль PHP для вашего проекта. Выбрал в модулях PHP -8.0 и в файле project.ini тоже установил 8.0...и ссылки по прежнему не работают. исходные файлы все ваши с 3 урока, окружение Win 10, Open Server 6
@@Nachkar37 проверил на Open Server 6, скачав исходники к уроку - все работает точно также, как и в уроке. Подскажите, пожалуйста, а что значит фраза "перестали работать ссылки" касательно данного урока? Мы ведь в этом уроке именно этого и добивались, чтобы все запросы шли на точку входа - index.php, в которой у нас абсолютно для всех адресов подключается один и тот же контроллер. Именно поэтому по всем ссылкам вы и видите одно и то же. Например, об этом я говорю на 10-ой минуте и показываю. Пересмотрите, пожалуйста, внимательнее. Если у вас так же работает, если по всем ссылкам показывает список постов - то пока что так и должно быть, именно это и было целью текущего урока - направить все запросы на один адрес.
@@matroskin978 Андрей, огромное спасибо за то, что не оставляете меня в беде!) Спрошу тогда по другому: должна ли работать ссылка на страницу about.php в конце 3 урока? Должна ли она открываться?
@@matroskin978 Андрей, очень извиняюсь за свою невнимательность!!! Меня почему-то переклинило, что в 3 уроке должна была работать ссылка на about.php. И из-за этого я разобрал по косточкам 2 и 3 урок...Выносил себе мозг почти неделю)))...пока не посмотрел 4 урок)))
Я немного отстаю, поэтому вопрос с небольшим опозданием. Почему нельзя вместо define("ROOT", dirname(__DIR__)) использовать define("ROOT", $_SERVER['DOCUMENT_ROOT'])? Я проверил, вроде всё работает, ничего не поломалось. Мне переменная $_SERVER['DOCUMENT_ROOT'] как-то более понятна и привычная, чем использование функции dirname().
Попробуйте создать на другом домене вложенную папку (например, чтобы она была доступна по адресу localhost/subfolder/) и в этой папке в файле index.php выведите на экран вот эти строки: var_dump(dirname(__DIR__)); var_dump(dirname($_SERVER['DOCUMENT_ROOT'])); Вы сразу увидите ответ на свой вопрос)) результат будет разным. $_SERVER['DOCUMENT_ROOT'] - содержит путь к корневой папке. К тому же, этот путь определяется в файле конфигурации, а не вычисляется автоматически. Поэтому здесь кроется две проблемы: 1. Нам не всегда нужен путь к корневой директории. Иногда нужен путь к папке, в которой выполняется именно текущий скрипт. И мой вариант даст 100% верный и нужный путь. 2. Значение в файле конфигурации определяется администратором. А это уже человеческий фактор... вписать там можно что угодно. Поэтому надеяться на это значение на все 100 не стоит. Надеюсь, ответил :)
Первый раз такое вижу. Не определяется контстанта PUBLIC - define("PUBLIC", ROOT . '/public'); public зарезервированное слово. В убунту это не удается. И phpstorm зеленым подчеркивает define, просит переименовать в const. PHP 8.0 cтоит. C нижним подчеркиванием создал, вот так: define("_PUBLIC", ROOT . '/public'); Так работает. Как то странно
Да, все верно. В PHP есть зарезервированные слова, которые нельзя использовать для именований констант, функций и классов. Вот этот список - www.php.net/manual/ru/reserved.keywords.php - там есть и public. При большом желании зарезервированные слова разрешается использовать для констант классов. Для глобальных констант - нельзя. Да и для констант классов я бы не использовал все же зарезервированные слова. Относительно замечания PhpStorm, то можете либо проигнорировать его (ничего страшного), либо же использовать const. Я просто привык использовать const только для констант класса. А для глобальных констант использую define(), поскольку const имеет некоторые ограничения, о которых можно прочесть в документации по ссылке - www.php.net/manual/ru/language.constants.syntax.php - там есть замечание в конце статьи.
@@matroskin978 Спасибо за ответ. Я вот о чем тут подумал. PHPSTORM не выводит никакой ошибки на константу PUBLIC. И поэтому ее не видно. Но var_dump (PUBLIC) ее не выводит. Попробуйте, у вас скорей всего также. Я , к сожалению, не успел дальнейших видео по этой теме посмотреть. Может вы ее используете и у вас не возникает такой проблемы
@@_slash_- если через define определять константу PUBLIC, тогда да - PhpStorm не ругается. А вот если попробуете объявить константу PUBLIC с помощью const, тогда PhpStorm уже будет ругаться. Поэтому, как и писал выше, не стоит пытаться использовать зарезервированные слова в именованиях Вашего кода. Я как-то забыл об этом и автоматом назвал константу по имени папки. Как правило, я называю эту константу WWW. В следующем уроке, который запишу на днях, обязательно отмечу этот момент и исправлюсь. Пока что не критично, поскольку эту константу мы пока нигде и не используем. Но Вы можете пока сами переименовать ее.
@@_slash_- вполне возможно, я не обратил внимания на версию, когда проверял. В любом случае, спасибо за то, что обратили внимание и подсказали. А то я Вам тут рассказываю, что нельзя использовать зарезервированные слова, а сам на автомате использовал и в ус не дую)))
Добрый вечер! За год с лишним забанил двух пользователей. За откровенное хамство в комментариях. И удалил (без бана) около 3-5 комментариев с матом. Вот и вся цензура на канале. Если куда-то пропадают комментарии, то варианта два: 1. Их удаляет сам UA-cam. Например за ссылки или по каким-то другим, неведомым мне соображениям. 2. Их удаляет пользователь. Например, вчера под видео об OpenServer пользователь написал мне, что у меня в том видео сплошная вода и ему смотреть невозможно даже на скорости 3.5х. Где он нашел такую скорость и как умудряется на ней что-то понять - это отдельная история)) Мы с ним мило пообщались после чего ветка комментариев пропала. Скорее всего, ее удалил сам инициатор общения, поскольку если удаляет UA-cam, то он это делает достаточно быстро, в течение нескольких минут, как правило. Здесь же ветка провисела почти сутки. Так что, если пользователи ведут себя адекватно, не хамят и общаются без мата, то я такие комментарии не удаляю. Даже если в общении есть дискуссия или не очень конструктивная критика.
@@matroskin978 Да я пишу вопросы, а они пропадают 😀. Просто я выложил свой сайт (который я переписал по Вашему текущему курсу, единственное не делал пагинацию и ServiceContaner) на хостинг и начали появляться проблемы ( на OpenServer все работает штатно). Если нетрудно, посмотрите пожалуйста - при запуске сайта появляется ошибка: Fatal error: Uncaught Error: Call to a member function findAll() on bool in /profiles/k/ki/kih/kihon1975//app/controllers/books/index.php:53 На этой строке идет запрос к базе данных: $arrAuthorsCurrent = $db->query("SELECT DISTINCT author FROM test ORDER BY `author`")->findAll(); Сайт очень похож на Ваш написанный в курсе.
@@matroskin978 Да я пишу вопросы, а они пропадают 😀. Просто я выложил свой сайт (который я переписал по Вашему текущему курсу, единственное не делал пагинацию и ServiceContaner) на хостинг и начали появляться проблемы ( на OpenServer все работает штатно). Если нетрудно, посмотрите пожалуйста - при запуске сайта появляется ошибка: Fatal error: Uncaught Error: Call to a member function findAll() on bool in /app/controllers/books/index.php:53 На этой строке идет запрос к базе данных: $arrAuthorsCurrent = $db->query("SELECT DISTINCT author FROM test ORDER BY `author`")->findAll(); Сайт очень похож на Ваш написанный в курсе.
Спасибо за урок! Андрей жму Вам руку за то, что создаете такие подробные видео на своем канале
Пожалуйста 😉
благодаря вам разобрался в правильном подключении файлов с помощью констант, используя точку входа !100 очков вам в карму!
Спасибо ☺
Вирішив коментувати і лайкати всі ваші відео, бо цей скарб мають бачити якомога більше людей)
Дякую)
Большое спасибо за объяснение каждой строчки в файле .htaccess 🤝
Спасибо тебе большое. Круто ты объясняешь. Уроки просто супер
Спасибо. Отличный урок и бъяснение, также хорошо, что с мелкими ошибками, помогает их быстрее находить. То, что нужно после теории.
Пожалуйста 🙂
У вас очень хорошие уроки. Часто помогают, когда нужно разобраться с детальностью изучения какой-то темы. Было бы круто, увидеть от вас детальный разбор .htaccess или например работы с websoket. :)
Спасибо)
По htaccess думал записать серию уроков. Возможно, дойдут руки)
@@matroskin978 Мне кажется, я ваш голос где-то уже на другом канале слышал. У вас нет ещё одного ютуб канала? Просто на этом канале подозрительно мало подписчиков, а контент хороший.
@@dreamypioneer3760 скорее всего, Вам не кажется 🙂 Около 10 лет я сотрудничал с проектом WebForMyself, вместе с которым записал огромное количество уроков и курсов, как бесплатных так и коммерческих. Чуть менее года тому я открыл свой канал, который теперь и развиваю. Поэтому на канале не так много подписчиков, поскольку каналу по факту пока меньше года. Хотелось бы, конечно, более активного развития... но как есть пока 😏
@@matroskin978 теперь понятно где я вас слышал. Удачи в развитии канала)
Спасибо)
Спасибо! Отличные уроки! Добавил себе доп. Работы и делал все через Nginx замучился подключать CSS файл. Спасибо еще раз за ваши уроки.
Пожалуйста ;)
Круто. Спасибо 😊
Спасибо за крутые уроки)
Пожалуйста)
😀😀😀😀
Круто! Автор молодец!
Спасибо за видео!
Спасибо, как всегда все очень доходчиво!
Пожалуйста 😉
Классные уроки !!! Спасибо !!!
Пожалуйста)
Здравствуйте, Андрей! Спасибо огромнейшее за Ваши уроки я от начала и до конца смотрю несколько раз) все понятно и доходчиво! Лайк и респект Вам, еслиб оффлайн преподавали я бы учился у Вас 😊
Пожалуйста 🙂
Оффлайн занимаюсь и индивидуально. В первую очередь мне интересен как раз начальный уровень учеников. Поэтому, если интересно, то можно написать на matroskin978@gmail.com
Спасибо, очень доступно объясняете)
Спасибо)
Спасибо вам)))) все очень классно
Пожалуйста 🙂
Спасибо!
Спасибо, всё отлично. Если интересно вам будет, через новый Open Server 6, всё работает без .htaccess, при подключении выдаёт ошибку, единственное ваша папка public уже не нужна, она уже есть Open Server. Посмотрю что будет дальше по ходу изучения ваших уроков. Подключал Server по вашему видео.
Пожалуйста)
В предыдущих версиях Open Server также можно было обойтись без .htaccess, указав в настройках домена корневую папку. Файл .htaccess я показал для тех случаев, когда нет доступа к настройкам сервера.
Всё-таки вы правы, дошёл до следующего урока без htaccess не получается, только главная показывается и всё. Только с htaccess работает всё. Ещё раз спасибо.
👍👍👍
Андрей здравствуйте, не подскажите в чем разница подключения файлов через dir, require __DIR__ . '/func.php'; и просто require 'func.php'; вроде бы работает и так и так, и как лучше?? Спасибо!
@@ТОЛЬКОПОБЕЗДОРОЖЬЮ Здравствуйте!
Я предпочитаю первый вариант, в этом случае будет использоваться абсолютный путь к файлу, т.е. полный путь. Каких-то неожиданных проблем в этом случае не будет. Во втором случае используется относительный путь. Если это простое включение одного файла в другой, то тоже никаких проблем не будет. Но если используется некоторая вложенность при подключении, т.е. из одного файла подключается второй, из второго - третий и т.д., тогда возможны нюансы. И чтобы их избежать - я предпочитаю использовать абсолютный путь. Еще лучше вместо константы __DIR__ использовать собственные константы с абсолютными путями. Это позволит безболезненней менять структуру проекта при необходимости.
Андрей подскажите пожалуйста. Почему phpstorm постоянно подчёркивает константу define и предлагает её определить как const? Что в php 8.3 define уже не будет работать?
Функция define() никуда не денется, хотя бы потому, что в ней нет некоторых ограничений, которые есть в const. Поэтому можете использовать как define(), так и const.
PhpStorm просто предлагает переопределить там, где это возможно, define() на const, потому что const - это более новая возможность языка и более универсальная, поскольку const можно использовать и внутри классов. Поэтому используйте любой вариант - ошибкой не будет.
Спасибо@@matroskin978
Интересно, как это на Nginx устроено, там есть файл подобный htaccess или используется совсем другая логика?
Нет, файл .htaccess - это файл именно под Apache для изменения некоторой конфигурации на лету. Для Nginx все делается в своем файле конфигурации. В следующем уроке в комментариях предлагали конфигурацию под Nginx - посмотрите, если интересно, возможно подойдет.
Именно про это и спрашивал, спасибо. Что посоветуете еще посмотреть/почитать для углубления знаний и получения навыков реальной разработки на PHP? Спасибо, что отвечаете спустя столько времени после выхода видео.@@matroskin978
Посмотреть посоветовал бы свои курсы, но они платные. А вот почитать, увы, ничего не посоветую в плане процедурного PHP. Все, что видел, это пересказ документации, по сути. По ООП могу рекомендовать книгу Мэтта Зандстры.
Андрей, вы ввели константу define("PUBLIC", ROOT . '/public');
Я попытался вывести ее на печать через функцию dd() или использовать ее при подстановке в операторе include, везде работа программы прекращается и выдаются ошибки типа:
Parse error: syntax error, unexpected token ")", expecting ":" in C:\OpenServer\domains\test.loc\public\index.php on line 13
Parse error: syntax error, unexpected token "public" in C:\OpenServer\domains\test.loc\public\index.php on line 13
Не позволяет использовать зарезервированное слово.
Да, Вы абсолютно правы, public - это зарезервированное слово и использовать его для именования констант - нельзя. На автомате сделал это по имени папки. В 9-ом уроке я исправлюсь и переименую константу с PUBLIC на WWW. Вы можете это сделать раньше 😉
Добрый день. Я делал не через бутстрап и у меня стили так и не подключились. Какие-бы пути не указывал в header, ничего не работает. Даже через отдельную константу не работает. Хотя в шаблоне header, sidebar, footer подключаются без проблем. Кто подскажет, что нужно делать?
Добрый день! Проверяйте корректность файлов .htaccess и включен ли на сервере Apache. С одним из двух, скорее всего, есть проблема у Вас.
@@matroskin978 Странно, но у меня тоже самое. Сижу уже час проверяю в чем может быть причина, чудеса какие то.
Андрей, огромное спасибо за ваши уроки!!! Не могли бы помочь с такой проблемой: после добавления файлов .htaccess перестали работать ссылки...При клике на любую из ссылок ничего не происходит. ОООчень много всего перепробовал и никак не получается решить проблему. Даже, тупо, скачал исходники 3 урока и всё равно ничего не работает.
Пожалуйста)
В настройках Open Server, если используете его, проверьте, включен ли модуль Apache. Если не включен - включите с соответствующей версией PHP. Это делается во вкладке Модули. Это все, что могу подсказать, не работая с вашим приложением и окружением.
@@matroskin978 Использую Open Server 6. В руководстве написано: Apache + PHP: Выберите только модуль PHP для вашего проекта. Выбрал в модулях PHP -8.0 и в файле project.ini тоже установил 8.0...и ссылки по прежнему не работают. исходные файлы все ваши с 3 урока, окружение Win 10, Open Server 6
@@Nachkar37 проверил на Open Server 6, скачав исходники к уроку - все работает точно также, как и в уроке.
Подскажите, пожалуйста, а что значит фраза "перестали работать ссылки" касательно данного урока? Мы ведь в этом уроке именно этого и добивались, чтобы все запросы шли на точку входа - index.php, в которой у нас абсолютно для всех адресов подключается один и тот же контроллер. Именно поэтому по всем ссылкам вы и видите одно и то же. Например, об этом я говорю на 10-ой минуте и показываю. Пересмотрите, пожалуйста, внимательнее. Если у вас так же работает, если по всем ссылкам показывает список постов - то пока что так и должно быть, именно это и было целью текущего урока - направить все запросы на один адрес.
@@matroskin978 Андрей, огромное спасибо за то, что не оставляете меня в беде!) Спрошу тогда по другому: должна ли работать ссылка на страницу about.php в конце 3 урока? Должна ли она открываться?
@@matroskin978 Андрей, очень извиняюсь за свою невнимательность!!! Меня почему-то переклинило, что в 3 уроке должна была работать ссылка на about.php. И из-за этого я разобрал по косточкам 2 и 3 урок...Выносил себе мозг почти неделю)))...пока не посмотрел 4 урок)))
Исходники к уроку - github.com/matroskin978/phpbeginners/tree/5a6747372f3b8b37390a6d2a4718aa461d9981c1
Я немного отстаю, поэтому вопрос с небольшим опозданием.
Почему нельзя вместо define("ROOT", dirname(__DIR__)) использовать define("ROOT", $_SERVER['DOCUMENT_ROOT'])? Я проверил, вроде всё работает, ничего не поломалось. Мне переменная $_SERVER['DOCUMENT_ROOT'] как-то более понятна и привычная, чем использование функции dirname().
Попробуйте создать на другом домене вложенную папку (например, чтобы она была доступна по адресу localhost/subfolder/) и в этой папке в файле index.php выведите на экран вот эти строки:
var_dump(dirname(__DIR__));
var_dump(dirname($_SERVER['DOCUMENT_ROOT']));
Вы сразу увидите ответ на свой вопрос)) результат будет разным. $_SERVER['DOCUMENT_ROOT'] - содержит путь к корневой папке. К тому же, этот путь определяется в файле конфигурации, а не вычисляется автоматически. Поэтому здесь кроется две проблемы:
1. Нам не всегда нужен путь к корневой директории. Иногда нужен путь к папке, в которой выполняется именно текущий скрипт. И мой вариант даст 100% верный и нужный путь.
2. Значение в файле конфигурации определяется администратором. А это уже человеческий фактор... вписать там можно что угодно. Поэтому надеяться на это значение на все 100 не стоит.
Надеюсь, ответил :)
@@matroskin978 Круто!)
Первый раз такое вижу. Не определяется контстанта PUBLIC - define("PUBLIC", ROOT . '/public'); public зарезервированное слово. В убунту это не удается. И phpstorm зеленым подчеркивает define, просит переименовать в const. PHP 8.0 cтоит. C нижним подчеркиванием создал, вот так: define("_PUBLIC", ROOT . '/public'); Так работает. Как то странно
Да, все верно. В PHP есть зарезервированные слова, которые нельзя использовать для именований констант, функций и классов. Вот этот список - www.php.net/manual/ru/reserved.keywords.php - там есть и public. При большом желании зарезервированные слова разрешается использовать для констант классов. Для глобальных констант - нельзя. Да и для констант классов я бы не использовал все же зарезервированные слова.
Относительно замечания PhpStorm, то можете либо проигнорировать его (ничего страшного), либо же использовать const. Я просто привык использовать const только для констант класса. А для глобальных констант использую define(), поскольку const имеет некоторые ограничения, о которых можно прочесть в документации по ссылке - www.php.net/manual/ru/language.constants.syntax.php - там есть замечание в конце статьи.
@@matroskin978 Спасибо за ответ. Я вот о чем тут подумал. PHPSTORM не выводит никакой ошибки на константу PUBLIC. И поэтому ее не видно. Но var_dump (PUBLIC) ее не выводит. Попробуйте, у вас скорей всего также. Я , к сожалению, не успел дальнейших видео по этой теме посмотреть. Может вы ее используете и у вас не возникает такой проблемы
@@_slash_- если через define определять константу PUBLIC, тогда да - PhpStorm не ругается. А вот если попробуете объявить константу PUBLIC с помощью const, тогда PhpStorm уже будет ругаться. Поэтому, как и писал выше, не стоит пытаться использовать зарезервированные слова в именованиях Вашего кода. Я как-то забыл об этом и автоматом назвал константу по имени папки. Как правило, я называю эту константу WWW. В следующем уроке, который запишу на днях, обязательно отмечу этот момент и исправлюсь. Пока что не критично, поскольку эту константу мы пока нигде и не используем. Но Вы можете пока сами переименовать ее.
@@matroskin978 У меня уже именно через define ругается. Наверное в восьмой версии исправили
@@_slash_- вполне возможно, я не обратил внимания на версию, когда проверял. В любом случае, спасибо за то, что обратили внимание и подсказали. А то я Вам тут рассказываю, что нельзя использовать зарезервированные слова, а сам на автомате использовал и в ус не дую)))
Добрый вечер Андрей! Скажите пожалуйста, у Вас работает цензура в комментариях? 🙂
Добрый вечер!
За год с лишним забанил двух пользователей. За откровенное хамство в комментариях. И удалил (без бана) около 3-5 комментариев с матом. Вот и вся цензура на канале. Если куда-то пропадают комментарии, то варианта два:
1. Их удаляет сам UA-cam. Например за ссылки или по каким-то другим, неведомым мне соображениям.
2. Их удаляет пользователь. Например, вчера под видео об OpenServer пользователь написал мне, что у меня в том видео сплошная вода и ему смотреть невозможно даже на скорости 3.5х. Где он нашел такую скорость и как умудряется на ней что-то понять - это отдельная история)) Мы с ним мило пообщались после чего ветка комментариев пропала. Скорее всего, ее удалил сам инициатор общения, поскольку если удаляет UA-cam, то он это делает достаточно быстро, в течение нескольких минут, как правило. Здесь же ветка провисела почти сутки.
Так что, если пользователи ведут себя адекватно, не хамят и общаются без мата, то я такие комментарии не удаляю. Даже если в общении есть дискуссия или не очень конструктивная критика.
@@matroskin978 Да я пишу вопросы, а они пропадают 😀. Просто я выложил свой сайт (который я переписал по Вашему текущему курсу, единственное не делал пагинацию и ServiceContaner) на хостинг и начали появляться проблемы ( на OpenServer все работает штатно). Если нетрудно, посмотрите пожалуйста - при запуске сайта появляется ошибка: Fatal error: Uncaught Error: Call to a member function findAll() on bool in /profiles/k/ki/kih/kihon1975//app/controllers/books/index.php:53 На этой строке идет запрос к базе данных:
$arrAuthorsCurrent = $db->query("SELECT DISTINCT author FROM test ORDER BY `author`")->findAll();
Сайт очень похож на Ваш написанный в курсе.
@@matroskin978 Да я пишу вопросы, а они пропадают 😀. Просто я выложил свой сайт (который я переписал по Вашему текущему курсу, единственное не делал пагинацию и ServiceContaner) на хостинг и начали появляться проблемы ( на OpenServer все работает штатно). Если нетрудно, посмотрите пожалуйста - при запуске сайта появляется ошибка: Fatal error: Uncaught Error: Call to a member function findAll() on bool in /app/controllers/books/index.php:53 На этой строке идет запрос к базе данных:
$arrAuthorsCurrent = $db->query("SELECT DISTINCT author FROM test ORDER BY `author`")->findAll();
Сайт очень похож на Ваш написанный в курсе.
Wow, то пропали, то появились 😀
@@matroskin978 Пока писал здесь, уже сам разобрался. Большое спасибо за курс. Непросто (для новичка в 50 лет 😀), но очень интересно.
Однозначно лайк. На канал подписал:) Времени не хватает все учить к сожалению..((
Да, время в нашей жизни - это один из самых ценных ресурсов. И со временем мы осознаем это все больше...