Добрый день! Подскажите пожалуйста, прохожу один онлайн курс по изучению PHP классы и объекты . Ниже приведено задание:
Что нужно сделать
Мы продолжаем разрабатывать наш аналог «Телеграфа». Опишем класс для описания сущности «текст». Добавим в класс поля и методы, необходимые для хранения, редактирования, удаления и вывода текста на экран.Для успешной реализации программы вам потребуется познакомиться со встроенными функциями PHP для работы с файловой системой:
- функция file_put_contents — для записи текста в файл;
- функция file_get_contents — для чтения текста из файла.
- функция file_exists — для проверки, существует ли файл с заданным именем.
- Создайте класс TelegraphText.
- Добавьте поля text,title, author,published и $slug.
- $title — заголовок текста;
- $text — текст;
- $author — имя автора;
- $published — дата и время последнего изменения текста;
- $slug — уникальное имя для файла, в котором будет храниться текст (например, test_text_file).
- Опишите конструктор для класса TelegraphText. При создании объекта данного класса будет передаваться имя автора и уникальное имя файла. В конструкторе задайте соответствующие значения полям $author,$slug и $published. Присвойте текущее время и дату полю $published.
- Опишите метод storeText для записи текста в файл. Создайте ассоциированный массив с ключами text, title, author, published и присвойте соответствующим элементам значения полей $title, $text,$author и $published. Сериализуйте массив с помощью встроенной функции serialize и запишите его в файл. Имя файла хранится в поле $slug.
- Опишите метод loadText для загрузки текста из файла. Имя файла хранится в поле $slug. По аналогии с методом storeText десереализуйте содержимое файла (если файл не пуст) в массив, а затем присвойте полям $title, $text, $author и $published значения соответствующих элементов массива. Метод должен возвращать $text.
- Опишите метод editText для редактирования текста. Метод должен принимать текстовые параметры: заголовок и текст. Метод назначает новые значения полям $text и $title.
- Создайте объект класса TelegraphText, передав необходимые для конструктора параметры.
- Вызовите методы editText, а затем storeText.
- Вызовите метод loadText и выведите значение, которое вернёт этот метод, на экран.
- Если всё работает правильно, сделайте коммит ваших изменений с помощью Git и отправьте коммит в репозиторий.
Не пойму с чего начать…..Класс я создал , а дальше что делать не совсем понимаю )
Что значит поля добавить ?
Добрый день! Подскажите пожалуйста, прохожу один онлайн курс по изучению PHP классы и объекты . Ниже приведено задание:
Что нужно сделать
Мы продолжаем разрабатывать наш аналог «Телеграфа». Опишем класс для описания сущности «текст». Добавим в класс поля и методы, необходимые для хранения, редактирования, удаления и вывода текста на экран.Для успешной реализации программы вам потребуется познакомиться со встроенными функциями PHP для работы с файловой системой:
- функция file_put_contents — для записи текста в файл;
- функция file_get_contents — для чтения текста из файла.
- функция file_exists — для проверки, существует ли файл с заданным именем.
- Создайте класс TelegraphText.
- Добавьте поля text,title, author,published и $slug.
- $title — заголовок текста;
- $text — текст;
- $author — имя автора;
- $published — дата и время последнего изменения текста;
- $slug — уникальное имя для файла, в котором будет храниться текст (например, test_text_file).
- Опишите конструктор для класса TelegraphText. При создании объекта данного класса будет передаваться имя автора и уникальное имя файла. В конструкторе задайте соответствующие значения полям $author,$slug и $published. Присвойте текущее время и дату полю $published.
- Опишите метод storeText для записи текста в файл. Создайте ассоциированный массив с ключами text, title, author, published и присвойте соответствующим элементам значения полей $title, $text,$author и $published. Сериализуйте массив с помощью встроенной функции serialize и запишите его в файл. Имя файла хранится в поле $slug.
- Опишите метод loadText для загрузки текста из файла. Имя файла хранится в поле $slug. По аналогии с методом storeText десереализуйте содержимое файла (если файл не пуст) в массив, а затем присвойте полям $title, $text, $author и $published значения соответствующих элементов массива. Метод должен возвращать $text.
- Опишите метод editText для редактирования текста. Метод должен принимать текстовые параметры: заголовок и текст. Метод назначает новые значения полям $text и $title.
- Создайте объект класса TelegraphText, передав необходимые для конструктора параметры.
- Вызовите методы editText, а затем storeText.
- Вызовите метод loadText и выведите значение, которое вернёт этот метод, на экран.
- Если всё работает правильно, сделайте коммит ваших изменений с помощью Git и отправьте коммит в репозиторий.
Не пойму с чего начать…..Класс я создал , а дальше что делать не совсем понимаю )
Что значит поля добавить ?
Начал так :
<?phpclass TelegraphText
{
private $title;
private $text;
private $author;
private $published ;
private $slug;public function __construct($title, $text, $author, $published, $slug)
{
$this->text = $text;
$this->title = $title;
$this->author = $author;
$this-> = ;}
}
Это прям о тебе — слабые основы.
PHP:
<?php // php 8.1 final class TelegraphText { private \DateTime $published; public function __construct ( private string $title, private string $text, private readonly string $author, \DateTime | string $published, private string $slug ) { { $this -> published = new \DateTime( $published ); } } public function storeText(): void { } public function loadText(): string | false { if ( ) { return $text; } return false; } public function editText( string $title, string $text ): void { $this -> title = $title; $this -> text = $text; } } // 7 $class = new TelegraphText( ‘title’, ‘text’, ‘author’, new \DateTime, ‘temp’ ); // 8 $class -> editText( ‘editTitle’, ‘editText’ ); $class -> storeText(); // 9 echo $class -> loadText();
PHP:
final class TelegraphText { private \DateTime $published; public function __construct ( private string $title, private string $text, private string $author, \DateTime | string $published, private string $slug ) { { $published = new \DateTime( $published ); } $this -> published = $published; } public function storeText(): void { } public function loadText(): string | false { if ( ) { return $text; } return false; } public function editText( string $title, string $text ): void { $this -> title = $title; $this -> text = $text; } }PHP:
a:5:{s:9:«published»;O:8:«DateTime»:3:{s:4:«date»;s:26:«2022-11-23 21:18:37.235406»;s:13:«timezone_type»;i:3;s:8:«timezone»;s:13:«Europe/Moscow»;}s:5:«title»;s:9:«editTitle»;s:4:«text»;s:8:«editText»;s:6:«author»;s:6:«author»;s:4:«slug»;s:4:«temp»;}
— Добавлено —
Спасибо! Будем развивать основы.
— Добавлено —
Виде посмотрел. Да есть над чем работать
Эту строчку никто не учитывает
Похожие записи:
- Газетное приложение Codeigniter 3
- Более быстрая, индексированная, эвристическая структура данных двусвязного списка в Java: реализация
- Класс, показывающий формат, аналогичный var_dump v1.0.5
- Библиотека интроспекции VBA для SQLite
- Более быстрая, индексированная, эвристическая структура данных двусвязного списка в Java: тест