Вопросы по принципу работы my-first-cms
Primary tabs
Хотел бы для себя уяснить принцип работы данного проекта, т.к. мне он сразу показался довольно запутанным и считаю что в рамках данного курса нужно досконально разобраться в материале, т.к. не хочется тупо копировать чужие решения до конца не понимая что и зачем...:
файлы взяты из GiHub: it-for-free/my-first-cms
1) Хотел бы лучше понять принцип работы данного конструктора и назначение самого массива data.
файл Category.php
public function __construct( $data=array() ) { if ( isset( $data['id'] ) ) $this->id = (int) $data['id']; if ( isset( $data['name'] ) ) $this->name = $data['name']; if ( isset( $data['description'] ) ) $this->description = $data['description']; } public function storeFormValues ( $params ) { // Store all the parameters $this->__construct( $params ); }
Предполагаю, что после проверки существования ключей массива data (id, name, description), соответствующим переменным класса присваиваются ключи массива data.
2) Хотел бы лучше понять назначение массива results Как взаимодействуют массивы data и result. И для чего передаются данные из одного массива во второй?
Хотел бы лучше понять данный код. Особенно последнюю строку:
файл admin.php
$results['article'] = new Article; $data = Category::getList(); $results['categories'] = $data['results']; require( TEMPLATE_PATH . "/admin/editArticle.php" );
Предполагаю, что в массиве results хранятся данные, которые выводятся на экран. В data записывается список категорий из БД при помощи PDO (ф-я getList()). Далее в массив results копируются данные из массива data.
- Log in to post comments
- 3078 reads
vedro-compota
Thu, 08/15/2019 - 11:03
Permalink
помимо видео
-- существования не ключей, а наличие по ним конкретных значений (см. документацию по isset() https://www.php.net/manual/ru/function.i...).
-- потому что второй массив хранит все данные, а первый лишь часть, условно говоря.
-- да, все так.
Подробнее на видео: https://youtu.be/x7N1OofbU5g
_____________
матфак вгу и остальная классика =)
Pavel1989
Sun, 08/18/2019 - 12:06
Permalink
Благодарю. Есть еще вопросы
по данному участку кода:
файл: editCategory.php
Хотел бы лучше понять формирование заголовка строки
"admin.php?action=deleteCategory&categoryId".
Предполагаю, что данная ссылка отображается в строке браузера
и указывает на файл admin.php,
далее на функцию deleteCategory() в этом файле. Особенно интересует "categoryId".
На примере работы со своим проектом в netBeans пришел к тому,
если в массиве results ключ будет назван category_id
(или как-то отлично от "categoryId",
то php выдаст ошибку в браузере "Undefined index: category_id"
c указанием конкретной строки.
vedro-compota
Sun, 08/18/2019 - 14:01
Permalink
GET параметры, остальное написано в коде
-- это не заголовок строки, а ссылка, просто в данном случае она дается относительно текущего доменного имени, это позволяет вам запустить код сайта с любым доменом.
Формируется она в данном случае просто конкатенацией строки - часть строки идет как фиксированные литералы, а изменяемые значения подставляются напр. из БД.
не в строке браузера, а в теле HTML-документа, который формируется php-скриптом, в адресной строке она отобразиться, когда вы на неё кликните и браузер перейдет на страницу, на которую она указывает.
-- да, это так, потому что здесь в данном случае в URL напрямую указывается входной файл скрипта (который уже потом подключается остальные файлы - вы это можете отследить по коду)
В конечном итоге - да, будет вызывана deleteCategory(), НО: почему это так? на самом деле:
action=deleteCategory&categoryId=
-- это просто два GET параметра (вспомните что это - как их обрабатывать, почитайте) -- далее уже скрипт явно проверяет значения этих параметров, ожидая вполне конкретных имен, поэтому собственно и верно, то что вы написали далее:
--------
Что именно интересует? это просто второй GET-параметр, логика формирования ссылки - это конкатенация, а логика её разбора - опять же в коде.
_____________
матфак вгу и остальная классика =)