Содержание

бесплатное обучение онлайн, 15 уроков

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

3134 студента 585 сообщений

Последнее обновление: 05 января 2022

Включено в курс

15 уроков (видео и/или текст)

41 проверочный тест

Дополнительные материалы

Помощь в «Обсуждениях»

Описание

В этом курсе рассматриваются объектно-ориентированные возможности языка php. Дополнительно мы научимся работать с неймcпейсами и трейтами. Также мы познакомимся с системой исключений и применим ее на практике.

ВНИМАНИЕ! Данный курс устарел. Рекомендуем просмотреть наш новый курс «PHP. Введение в ООП».

Программа курса

Продолжительность 5 часов

  • Классы

    Познакомиться с понятием класса в объектно-ориентированном языке PHP.

    теория

    тесты

  • Пространства имен

    Научиться использовать пространства имен для разделения кода.

    теория

    тесты

  • Методы

    Рассмотреть методы, то есть функции внутри объектов. Изучить основные виды методов, типичные для классов в PHP.

    теория

    тесты

  • Интерфейс

    Изучить интерфейсы

    теория

    тесты

  • Наследование

    Изучить идею и механизм наследования в ООП.

    теория

    тесты

  • Абстрактные классы

    Рассмотреть абстрактные классы на примере разработки простой системы кеширования.

    теория

    тесты

  • Трейты

    Изучить понятие трейтов в PHP.

    теория

    тесты

  • Константы классов

    Познакомиться с константами в классах в PHP.

    теория

    тесты

  • Static

    Познакомиться со статическими свойствами и методами.

    теория

    тесты

  • Исключения

    Познакомиться с концепцией исключений. Научиться их бросать и перехватывать.

    теория

    тесты

  • Исключения: finally

    Глубже изучить исключения и познакомиться с блоком `finally`.

    теория

    тесты

  • Перегрузка: свойства

    Познакомиться с понятием перегрузки в php. Научиться определять динамические свойства.

    теория

    тесты

  • Перегрузка: методы

    Познакомиться с перегрузкой методов в php. Разобраться в способах создания динамического поведения.

    теория

    тесты

  • Позднее статическое связывание

    Разобраться с поздним статическим связыванием в php

    теория

    тесты

  • Автоматическая загрузка классов

    Научиться подключать классы автоматически с помощью spl_autoload.

    теория

    тесты

Формат обучения


Pavel Se12 августа 2016

А как в NameSpace смотреть на уровень вверх? ..\ не работает что-то

Курс «PHP: Введение в ООП»: обучение онлайн, 18 уроков

Включено в курс

18 уроков (видео и/или текст)

23 упражнения в тренажере

52 проверочных теста

Дополнительные материалы

Помощь в «Обсуждениях»

Доступ к остальным курсам платформы

Чему вы научитесь

  • Описывать сущности предметной области с помощью классов
  • Использовать объекты для реализации программной логики
  • Подключать механизм автозагрузки классов (стандарт PSR4) в composer
  • Защищать состояние объектов от внешнего воздействия с помощью модификаторов доступа
  • Понимать плюсы и минусы кода с классами и объектами
  • Использовать исключения в своем коде

Описание

На этом курсе вы познакомитесь с объектно ориентированным программированием на PHP. Вы узнаете о классах, интерфейсах, инкапсуляции и магических методах. В итоге поймете, для чего нужны классы как абстракция данных. Знание основ объектно ориентированного программирования пригодится, чтобы понимать плюсы и минусы кода с классами и объектами. Также это поможет использовать объекты для реализации программной логики. Этот курс подойдет тем, кто уже хорошо знаком с языком PHP. Чтобы учиться было проще, стоит заранее изучить курсы: «Основы PHP», «PHP: Массивы», «PHP: Ассоциативные массивы» и «PHP: Функции».

классы инкапсуляция интерфейсы исключения автозагрузка магические методы

Программа курса

Продолжительность 21 час

  • О курсе

    Узнать о курсе, его структуре, задачах и целях.

    теория

  • Структуры

    Познакомиться с понятием «структура» из языка Си

    теория

  • Классы

    Изучить механизм создания собственных типов в PHP

    теория

    тесты

    упражнение

  • Автозагрузка классов

    Познакомиться с правилами организации классов в коде приложения и научиться пользоваться автозагрузкой Composer

    теория

    тесты

    упражнение

  • Свойства

    Научиться инициализировать свойства

    теория

    тесты

    упражнение

  • Указатели

    Познакомиться с тем, как объекты связываются с переменными

    теория

    тесты

    упражнение

  • Сравнение объектов

    Научиться правильно сравнивать объекты

    теория

    тесты

    упражнение

  • Конструктор

    Научиться инициализировать объект при создании

    теория

    тесты

    упражнение

  • Инкапсуляция

    Познакомиться с концепцией объединения данных и функций

    теория

    тесты

    упражнение

  • Сокрытие данных (Data Hiding)

    Понять в чем отличие сокрытия от инкапсуляции

    теория

    тесты

    упражнение

  • Изменяемость

    Повторить материал по влиянию побочных эффектов на код

    теория

    тесты

    упражнение

  • Магический метод __toString()

    Научиться преобразовывать объект в строку

    теория

    тесты

    упражнение

  • Константы классов

    Познакомиться с основными возможностями констант, определённых в классах

    теория

    тесты

    упражнение

  • Статические свойства

    Познакомиться с понятием «статическое свойство»

    теория

    тесты

    упражнение

  • Статические методы

    Познакомиться с понятием «статический метод»

    теория

    тесты

    упражнение

  • Интерфейсы (ключевое слово `interface`)

    Познакомиться с новой конструкцией для создания явных интерфейсов

    теория

    тесты

    упражнение

  • Плюсы и минусы разных способов организации абстракций

    Узнать, чем хороша и чем плоха инкапсуляция

    теория

    тесты

  • Исключения

    Познакомиться с исключениями, научиться их генерировать и перехватывать.

    теория

    тесты

    упражнение

Формат обучения

Испытания

Это практические задания, которые мы советуем выполнить после завершения курса. Задания помогут вам получить дополнительный опыт в программировании и закрепить полученные навыки. Обычно мы рекомендуем выполнить 3-5 испытаний. Но если не получается, не отчаивайтесь. Просто вернитесь к ним позже

Все

Demetri Samartsev10 июня 2022

Спасибо за урок. Здорово ложится на курс по Абстрактным типам данных. Начинает складываться понимание, как изучать код фреймворков и cms, видимо стоит начинать такое изучение как раз с интерфейсов, которые и будут в первую очередь описывать какие в проекте есть сущности и какие операции над ними можно выполнять.

Посмотрел решение учителя. А можно философский вопрос? Разве мы не должны убедиться, что объект, с которым мы сравниваем объект типа ComparableInterface, сам имеет тип ComparableInterface?

А с практической точки зрения, если мы сравниваем по id, то ComparableInterface разве не должен иметь еще и обязательный и getId()?

https://ru.hexlet.io/code_reviews/603307


Константин Проскурня15 декабря 2018

Спасибо, курс отличный!

Отдельное спасибо за Николая Рыжикова и Рича Хикки. Оба крутые дядьки.


Юлия Стрелкова15 июня 2018

Спасибо за новый курс по ООП. Первый шел очень тяжело, было много вопросов не понимания. Читала книгу, что бы его пройти. И даже после этого было много вопросов. Но этот курс, как раз для тех, кто еще ни разу не видел ооп, классы и не умеет с ними работать. Спасибо. Многие вопросы нашли свои ответы тут. А будет продолжение, что бы разобрать и поработать с инкапсуляцией, наследованием и полиморфизмом? И какие еще курсы будут обновляться?

Рекомендуемые программы

профессия

• от 6 300 ₽ в месяц

PHP-разработчик

Разработка веб-приложений на Laravel

10 месяцев •

с нуля

Старт 4 мая

PHP — Что такое ООП?

❮ Предыдущий Далее ❯


Начиная с PHP5, вы также можете писать PHP-код в объектно-ориентированном стиль.

Объектно-ориентированное программирование выполняется быстрее и проще.


PHP Что такое ООП?

ООП означает объектно-ориентированное программирование.

Процедурное программирование заключается в написании процедур или функций, которые выполняют операции над данными, в то время как объектно-ориентированное программирование создание объектов, содержащих как данные, так и функции.

Объектно-ориентированное программирование имеет ряд преимуществ перед процедурным программирование:

  • ООП быстрее и проще в исполнении
  • ООП обеспечивает четкую структуру для программ
  • ООП помогает сохранить код PHP СУХИМ «Не повторяйтесь» и делает в код легче поддерживать, изменять и отлаживать
  • ООП позволяет создавать полностью многоразовые приложения с меньшим количеством кода и меньшим временем разработки

Наконечник: Принцип «Не повторяйся» (СУХОЙ) касается уменьшение повторения кода. Вы должны извлечь коды, которые общие для приложения, размещать их в одном месте и повторно использовать вместо того, чтобы повторять.


PHP — что такое классы и объекты?

Классы и объекты — два основных аспекта объектно-ориентированного программирования.

Посмотрите на следующую иллюстрацию, чтобы увидеть разницу между классом и объекты:

9 класс0011

Фрукты

объектов

Яблоко

Банан

Манго

Другой пример:

класс

Автомобиль

объектов 9 0011

Volvo

Audi

Toyota

Итак, класс — это шаблон для объектов, а объект является экземпляром класса.

При создании отдельных объектов они наследуют все свойств и поведения из класса, но каждый объект будет иметь разные значения свойств.

Прочтите следующие главы, чтобы узнать больше об ООП.

❮ Предыдущий Следующий ❯


ВЫБОР ЦВЕТА



Лучшие учебники
Учебное пособие по HTML
Учебное пособие по CSS
Учебное пособие по JavaScript
Учебное пособие
Учебное пособие по SQL
Учебное пособие по Python
Учебное пособие по W3. CSS
Учебное пособие по Bootstrap
Учебное пособие по PHP
Учебное пособие по Java
Учебное пособие по C++
Учебное пособие по jQuery
9000 3

Основные каталожные номера
Справочник по HTML
Справочник по CSS
Справочник по JavaScript
Справочник по SQL
Справочник по Python
Справочник по W3.CSS
Справочник по Bootstrap
Справочник по PHP
Цвета HTML
Справочник по Java
Справочник по Angular
Справочник по jQuery

Примеры
Примеры HTML
Примеры CSS
Примеры JavaScript
Примеры инструкций
Примеры SQL
Примеры Python
Примеры W3.CSS
Примеры Bootstrap
Примеры PHP
Примеры Java
Примеры XML
Примеры jQuery


ФОРУМ | О

W3Schools оптимизирован для обучения и обучения. Примеры могут быть упрощены для улучшения чтения и обучения. Учебники, ссылки и примеры постоянно пересматриваются, чтобы избежать ошибок, но мы не можем гарантировать полную правильность всего содержания. Используя W3Schools, вы соглашаетесь прочитать и принять наши условия использования, куки-файлы и политика конфиденциальности.

Copyright 1999-2023 Refsnes Data. Все права защищены.
W3Schools работает на основе W3.CSS.

PHP: Журнал изменений OOP — руководство

8.1.0 Добавлено: поддержка модификатора final для констант класса. Кроме того, константы интерфейса становятся переопределяемыми по умолчанию.
8.0.0 Добавлено: поддержка оператора nullsafe ?-> для доступа к свойствам и методам объектов, которые могут быть нулевыми.
7.4.0 Изменено: теперь можно генерировать исключение внутри __toString() .
7.4.0 Добавлено: поддержка ограниченной ковариации возвращаемого типа и аргумента. контравариантность типа. Полная поддержка отклонений доступна только в том случае, если используется автозагрузка. Внутри одного файла только нециклический тип ссылки возможны.
7.4.0 Добавлено: теперь можно вводить свойства класса.
7.3.0 Несовместимость: Аргумент распаковки Traversables с ключами, отличными от int, больше не поддерживается. Такое поведение было непреднамеренным и поэтому было удалено.
7.3.0 Несовместимость: в предыдущих версиях можно было разделить статические свойства путем присвоения ссылки. Это было удалено.
7.3.0 Изменено: instanceof оператор теперь допускает литералы в качестве первого операнда, и в этом случае результат всегда false .
7. 2.0 Устарело: метод __autoload() был устарел в пользу spl_autoload_register().
7.2.0 Изменено: следующее имя нельзя использовать для обозначения классов, интерфейсов, или черты: объект .
7.2.0 Изменено: теперь в синтаксис группового использования можно добавить запятую. для пространств имен.
7.2.0 Изменено: Расширение типа параметра. Типы параметров из переопределенного методы и из реализаций интерфейса теперь могут быть опущены.
7.2.0 Изменено: абстрактные методы теперь могут быть переопределены, когда абстрактный класс расширяет другой абстрактный класс.
7.1.0 Изменено: следующие имена нельзя использовать для имен классов, интерфейсов, или черты: void и iterable .
7.1.0 Добавлено: теперь можно указать видимость константы класса.
7.0.0 Устарело: статические вызовы к методам, которые не объявлены статическими.
7.0.0 Устарело: стиль PHP 4 конструктор. т.е. методы, которые имеют то же имя, что и класс они определены в.
7.0.0 Добавлено: Группа использует объявление : классы, функции и константы, импортируемые из одного и того же пространства имен, теперь можно группировать. вместе в одном операторе использования.
7.0.0 Добавлено: поддержка анонимные классы был добавлен через новый класс .
7.0.0 Несовместимость: перебор непроходимого объект теперь будет иметь то же поведение, что и перебор по ссылке массивы.
7.0.0 Изменено: определение (совместимых) свойств в двух используемых черты больше не вызывает ошибку.
5.6.0 Добавлено: метод __debugInfo().
5.5.0 Добавлено: магическая константа ::class.
5.5.0 Добавлено: наконец, для обработки исключений.
5.4.0 Добавлено: черты.
5.4.0 Изменено: если абстрактный класс определяет подпись для конструктор теперь будет применяться.
5.3.3 Изменено: методы с тем же именем, что и последний элемент пространство имен имя класса больше не будет рассматриваться как конструктор. Это изменение не влияют на классы без пространства имен.
5.3.0 Изменено: классы, которые реализуют интерфейсы с методами, имеющими значения по умолчанию. значения в прототипе больше не требуются для соответствия интерфейсу по умолчанию ценить.
5.3.0 Изменено: теперь можно ссылаться на класс, используя переменную (например, эхо $classname::constant; ). Значение переменной не может быть ключевым словом (например, self , родительский или статический ).
5.3.0 Изменено: ошибка уровня E_WARNING выдается, если волшебная перегрузка методы объявлены статическими. Он также обеспечивает соблюдение требования публичной видимости.
5.3.0 Изменено: до версии 5.3.0 исключения вызывались в Функция __autoload() не может быть застрял в блоке захвата, и приведет к фатальной ошибке. Исключения теперь генерируются в функции __autoload может быть пойман в блоке захвата, с одно положение. Если генерируется пользовательское исключение, то пользовательский класс исключения должен быть доступным. Функция __autoload может использоваться рекурсивно для автоматической загрузки пользовательский класс исключений.
5.3.0 Добавлено: метод __callStatic.
5.3.0 Добавлено: вот документ а теперьдок поддержка class const и определений свойств. Примечание: значения heredoc должны подчиняться тем же правилам, что и строки в двойных кавычках. (например, без переменных внутри).
5.3.0 Добавлено: поздние статические привязки.
5.3.0 Добавлено: метод __invoke().
5. 2.0 Изменено: __toString() метод вызывался только тогда, когда он был напрямую объединен с эхо или печать. Но теперь он вызывается в любом строковом контексте (например, в printf() с модификатором %s ), но не в контексте других типов (например, с модификатором %d ). Начиная с PHP 5.2.0, преобразование объектов без __toString метод для строки испускает E_RECOVERABLE_ERROR ошибка уровня.
5.1.3 Изменено: в предыдущих версиях PHP 5 использование var считался устаревшим и выдавал E_STRICT ошибка уровня. Он больше не устарел, поэтому не выдает ошибку.
5.1.0 Изменено: статическая функция __set_state(). метод теперь вызывается для классов, экспортируемых с помощью var_export().

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

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