Практическая работа по php

Добрый день! Подскажите пожалуйста, прохожу один онлайн курс по изучению PHP классы и объекты . Ниже приведено задание:

Что нужно сделать
Мы продолжаем разрабатывать наш аналог «Телеграфа». Опишем класс для описания сущности «текст». Добавим в класс поля и методы, необходимые для хранения, редактирования, удаления и вывода текста на экран.

Для успешной реализации программы вам потребуется познакомиться со встроенными функциями PHP для работы с файловой системой:

  • функция file_put_contents — для записи текста в файл;
  • функция file_get_contents — для чтения текста из файла.
  • функция file_exists — для проверки, существует ли файл с заданным именем.

  1. Создайте класс TelegraphText.
  2. Добавьте поля text,title, author,published и $slug.
    • $title — заголовок текста;
    • $text — текст;
    • $author — имя автора;
    • $published — дата и время последнего изменения текста;
    • $slug — уникальное имя для файла, в котором будет храниться текст (например, test_text_file).
  3. Опишите конструктор для класса TelegraphText. При создании объекта данного класса будет передаваться имя автора и уникальное имя файла. В конструкторе задайте соответствующие значения полям $author,$slug и $published. Присвойте текущее время и дату полю $published.
  4. Опишите метод storeText для записи текста в файл. Создайте ассоциированный массив с ключами text, title, author, published и присвойте соответствующим элементам значения полей $title, $text,$author и $published. Сериализуйте массив с помощью встроенной функции serialize и запишите его в файл. Имя файла хранится в поле $slug.
  5. Опишите метод loadText для загрузки текста из файла. Имя файла хранится в поле $slug. По аналогии с методом storeText десереализуйте содержимое файла (если файл не пуст) в массив, а затем присвойте полям $title, $text, $author и $published значения соответствующих элементов массива. Метод должен возвращать $text.
  6. Опишите метод editText для редактирования текста. Метод должен принимать текстовые параметры: заголовок и текст. Метод назначает новые значения полям $text и $title.
  7. Создайте объект класса TelegraphText, передав необходимые для конструктора параметры.
  8. Вызовите методы editText, а затем storeText.
  9. Вызовите метод loadText и выведите значение, которое вернёт этот метод, на экран.
  10. Если всё работает правильно, сделайте коммит ваших изменений с помощью Git и отправьте коммит в репозиторий.

Не пойму с чего начать…..Класс я создал , а дальше что делать не совсем понимаю )
Что значит поля добавить ?

 

Добрый день! Подскажите пожалуйста, прохожу один онлайн курс по изучению PHP классы и объекты . Ниже приведено задание:

Что нужно сделать
Мы продолжаем разрабатывать наш аналог «Телеграфа». Опишем класс для описания сущности «текст». Добавим в класс поля и методы, необходимые для хранения, редактирования, удаления и вывода текста на экран.

Для успешной реализации программы вам потребуется познакомиться со встроенными функциями PHP для работы с файловой системой:

  • функция file_put_contents — для записи текста в файл;
  • функция file_get_contents — для чтения текста из файла.
  • функция file_exists — для проверки, существует ли файл с заданным именем.

  1. Создайте класс TelegraphText.
  2. Добавьте поля text,title, author,published и $slug.
    • $title — заголовок текста;
    • $text — текст;
    • $author — имя автора;
    • $published — дата и время последнего изменения текста;
    • $slug — уникальное имя для файла, в котором будет храниться текст (например, test_text_file).
  3. Опишите конструктор для класса TelegraphText. При создании объекта данного класса будет передаваться имя автора и уникальное имя файла. В конструкторе задайте соответствующие значения полям $author,$slug и $published. Присвойте текущее время и дату полю $published.
  4. Опишите метод storeText для записи текста в файл. Создайте ассоциированный массив с ключами text, title, author, published и присвойте соответствующим элементам значения полей $title, $text,$author и $published. Сериализуйте массив с помощью встроенной функции serialize и запишите его в файл. Имя файла хранится в поле $slug.
  5. Опишите метод loadText для загрузки текста из файла. Имя файла хранится в поле $slug. По аналогии с методом storeText десереализуйте содержимое файла (если файл не пуст) в массив, а затем присвойте полям $title, $text, $author и $published значения соответствующих элементов массива. Метод должен возвращать $text.
  6. Опишите метод editText для редактирования текста. Метод должен принимать текстовые параметры: заголовок и текст. Метод назначает новые значения полям $text и $title.
  7. Создайте объект класса TelegraphText, передав необходимые для конструктора параметры.
  8. Вызовите методы editText, а затем storeText.
  9. Вызовите метод loadText и выведите значение, которое вернёт этот метод, на экран.
  10. Если всё работает правильно, сделайте коммит ваших изменений с помощью Git и отправьте коммит в репозиторий.

Не пойму с чего начать…..Класс я создал , а дальше что делать не совсем понимаю )
Что значит поля добавить ?
Начал так :
<?php

class 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:
  1. <?php // php 8.1
  2.  
  3. final class TelegraphText
  4. {
  5.     private \DateTime $published;
  6.  
  7.     public function __construct (
  8.         private string $title,
  9.         private string $text,
  10.         private readonly string $author,
  11.         \DateTime | string $published,
  12.         private string $slug
  13.     )
  14.     {
  15.         if ( is_string ( $published ) )
  16.         {
  17.             $this -> published = new \DateTime( $published );
  18.         }
  19.     }
  20.  
  21.     public function storeText(): void
  22.     {
  23.         $serialize = serialize ( get_object_vars ( $this ) );
  24.    
  25.         file_put_contents ( $this -> slug, $serialize/* , FILE_APPEND */ );
  26.     }
  27.  
  28.     public function loadText(): string | false
  29.     {
  30.         if (
  31.             file_exists ( $this -> slug ) &&
  32.             ( $string = file_get_contents ( $this -> slug ) ) &&
  33.             $text = unserialize ( $string )[‘text’] ?: false
  34.         )
  35.         {
  36.             return $text;
  37.         }
  38.    
  39.         return false;
  40.     }
  41.  
  42.     public function editText( string $title, string $text ): void
  43.     {
  44.         $this -> title = $title;
  45.    
  46.         $this -> text = $text;
  47.     }
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54. // 7
  55. $class = new TelegraphText( ‘title’, ‘text’, ‘author’, new \DateTime, ‘temp’ );
  56.  
  57. // 8
  58. $class -> editText( ‘editTitle’, ‘editText’ );
  59.  
  60. $class -> storeText();
  61.  
  62. // 9
  63. echo $class -> loadText();
 

PHP:
  1. final class TelegraphText
  2. {
  3.     private \DateTime $published;
  4.    
  5.     public function __construct (
  6.         private string $title,
  7.         private string $text,
  8.         private string $author,
  9.         \DateTime | string $published,
  10.         private string $slug
  11.     )
  12.     {
  13.         if ( is_string ( $published ) )
  14.         {
  15.             $published = new \DateTime( $published );
  16.         }
  17.        
  18.         $this -> published = $published;
  19.     }
  20.    
  21.     public function storeText(): void
  22.     {
  23.         $serialize = serialize ( get_object_vars ( $this ) );
  24.        
  25.         file_put_contents ( $this -> slug, $serialize/* , FILE_APPEND */ );
  26.     }
  27.    
  28.     public function loadText(): string | false
  29.     {
  30.         if (
  31.             file_exists ( $this -> slug ) &&
  32.             ( $string = file_get_contents ( $this -> slug ) ) &&
  33.             ( $text = unserialize ( $string )[‘text’] ?: false )
  34.         )
  35.         {
  36.             return $text;
  37.         }
  38.        
  39.         return false;
  40.     }
  41.    
  42.     public function editText( string $title, string $text ): void
  43.     {
  44.         $this -> title = $title;
  45.        
  46.         $this -> text = $text;
  47.     }
  48. }
PHP:
  1. 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»;}
 

— Добавлено —
Спасибо! Будем развивать основы.
— Добавлено —
Виде посмотрел. Да есть над чем работать

 

Эту строчку никто не учитывает :)

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *