Вопросы и ответы

В этом разделе я буду публиковать наиболее часто возникающие вопросы и ответы на них.

Вопрос #5:

1) Виктор, добрый день! Начал смотреть курс PHP Start | Практика. Как я понял, сайт будет создаваться без использования фреймворка? А то мне знакомые разработчики все уши прожужжали что нужно изучать фреймворк Yii

2) Я вот и хотел спросить.. Пример создания интернет магазина, который рассматривается в курсе, он скорее академический? Реальные коммерческие проекты, наверное, создаются с использованием фреймворков, т.к. это сильно оптимизирует процесс разработки благодаря использованию типовых шаблонов кода. Ответ на этот вопрос помог бы внести ясность в происходящее... PHP Start | Практика всё таки стоит пройти с целью понимания общей логики?

Ответ:

1) Знакомые дело правильно, я тоже так считаю. Но любой фреймворк требует подготовки, например, знаний ООП. Когда я строил систему MVC в практике, то старался следовать подходам, которые используются во фреймворках. Потому PHP Start (теория и практика) поможет с подготовкой, после него можно смело начинать учить yii2 (или что-нибудь похожее).

2) Ответил в блоге, т.к. вопрос действительно важный.


Вопрос #4:

Если я смогу пройти курс, то на каком уровне php программиста я буду? На работу возьмут?

Ответ:

Уровни всегда зависят от конкретной компании. Нет никаких общих стандартов. 

После прохождения курса учащийся, скорее всего, не будет дотягивать до уровня junior. Наверное, это уровень trainee (стажер). Дело в практике. Кроме знаний, я считаю, junior должен иметь хотя бы 1-2 реализованных сайта (пусть даже мелких и несложных). 

Возьмут ли на работу? Опять же, зависит от Вас. Если учиться на совесть, понимать все, что мы делаем в курсе, быть любопытным и трудолюбивым, обязательно найдется место.


Вопрос #3:

Fatal error: Call to a member function fetch() on a non-object

Подскажите кто нибудь что за функция fetch?? В модели строка содержащая: $row = $result->fetch() выдаёт ошибку.

Ответ:

Рассмотрим пример:

$db = Db::getConnection(); // Что делает метод getConnection смотрите клацнув на него (1)
$sql = "SEECT * FROM product";  // (2)
$result = $db->query($sql); // (3)
...
while ($row = $result->fetch()) {  // (4)
   ...
}


В строке (3) метод query() возвращает экземпляр класса PDOStatement. Метод fetch() - это метод класса PDOStatement.
В этом примере текст запроса (2) содержит ошибку (опечатка в слове SELECT). Далее в строке (3) метод query() из-за ошибки в запросе возвращает false, следовательно в переменную $result записывается false. Далее в строке (4) мы пытаемся вызвать метод fetch() у переменной, в которой хранится false. Результат: Fatal error: Call to a member function fetch() on a non-object


Вопрос #2:

Где скачать готовый пример магазина, созданного в курсе "PHP Start | Практика"?

Ответ:

Вам понадобиться дамп базы данных и код. 
Ссылки можно найти на страницах урока, посвященных созданию магазина, например:
http://php-start.com/lesson/php-start-practice/internet-shop-part-3

Адрес репозитория проекта:
https://github.com/victor-zinchenko/shop.php-start.com


Вопрос #1:

Не могу избавиться от ошибки: 

Notice: Use of undefined constant _FILE_ - assumed '_FILE_' in /Users/Elios/Sites/Test/index.php on line 10 

Подскажите, что это может быть?

Ответ:

Перед и после FILE нужно писать по 2 знака _ 

__FILE__ принадлежит к "волшебным" константам PHP. Здесь подробнее:

http://php.net/manual/ru/language.constants.predefined.php


Новый курс

PHP UP
Курс продвинутого программирования

Бесплатные курсы