Украина, Днепр
(095) 478-70-11
echo - языковая конструкция которая может вывести на экран сколько угодно текст
print_r() - функция которая отображает текст на экран, возвращает bool
Функция isset() проверяет, установлена ли переменная или нет. Функция empty() проверяет, является ли переменная пустой.
Функция session_start() используется для запуска сеанса. Она начинает новый или возобновляет текущий сеанс. Возвращает текущий сеанс, если сеанс уже создан. Если сеанс недоступен, она создает и возвращает новые сеансы. Уничтожается автоматически по завершению.
Type Hinting — это механизм, который позволяет явно указывать типы параметров. Интерпретатор использует их и применяет исключение в тех ситуациях, когда тип не соответствует ожидаемому. Так работает в большинстве языков, где присутствует этот механизм.>
Процесс, во время которого программа может отслеживать и модифицировать собственную структуру и поведение во время выполнения.
Dependency Injection – это программный шаблон, который реализует принцип объектно-ориентированного программирования "Инверсия управления (Inversion Of Control)". Реализация этого шаблона подразумевает снижения "связанности кода", соответственно, получается код, который легче использовать повторно и сопровождать, то есть, изменение компонент одной части приложения не вызывает ошибок в другой части или необходимости значительных каскадных изменений.
В php это можно представить как пример с двумя классами, которые взаимодействуют друг с другом. Так вот di тут будет представлять собой как передача инстанса второго класса как параметр в первый объект, а не как создание в первом классе постредством конструктора инстанса второго
Так не правильно:
class First { protected $second; function __construct() { $this->second = new Second('123'); } }
Так правильно:
class First { protected $second; function __construct(Second $second) { $this->second = $second; } } $second = new Second('123'); $first = new First($second);
Методы которые находятся в интерфейсах несут только информационный характер, и не могут быть реализованы. В абстрактных кслассах также как и в интерфесах абстрактные методы тоже не могут быть реализованы, но могут присутствовать не абстрактные методы которые несут реализацию.
Интерфесы не содержат атрибутов и не могут ими оперировать, в то время как абстрактный класс может их иметь и использовать в своих не абстрактных методах.
Класс имплиментирует интерфейс, в то время класс наследует абстрактный класс либо его расширяет.
Класс может имплиментировать несколько интерфейсов но не может быть наследником нескольких класов, для множественного наследования используеться trait или магический метод __call
Паттерны проектирования, в основном по предназначению, деляться на 3 крупные группы
Структурные паттерны - отображают возможные способы связей между объектами.
Поведенческие паттерны - страраються создать максимально эффективный камуникации между объктами.
Три функции которые облегчают передачу переменных между контроллерами и отображениями, как вариант). extract() в первом параметре получает ассоциативный массив, который распаковывается в переменные, названия переменных это ключи массива а значения соответственно значения переменных. Например если был передан массив настроек приложения, и для удобства было бы проще обращаться к переменным которые имеют понятные названия.
Функция compact() наоборот позволяет собрать все переменные в массив. Ее удобно использовать когда нужно передать большое количество переменных, например как параметры функций, но так как использовать больше 3 параметров в функции не удобно и есть правила хорошего тона).
list() это не функция, а языковая конструкция которая позволяет за одни ход сразу присвоить нескольким переменным значения. Для этого в параметрах передаются названия а через оператор "=" указываем массив со значениями этих переменных. Переменных в php5 присваиваться с право на лево, а в php7 с лево на право. list($a, $b, $c) = ['a', 'b', 'c'];
Данные функции как и лямбда функции(анонимные) являються инстансами класса Closure
Стандартный вид fn (argument_list) => expr.
Эти функции умеют все тоже что и анонимные, а переменные в которые находятся в родительском пространсве, неявно переносятся по имени в стрелочную функцию, тоесть становятся замыканием
В анонимных функциях пробрасывать переменные с родитеского пространства нужно использую ключевое слово use
В 7 версии существую такие типы данных
Это константа которая отображает разделитель строки. Т.к. в Linux подобных системах и windows этот разделитель разный, / и \ соответственно, то играться с выбором правильно косой не комильфо). Ну вообще конечно WIndows может работать с обоими косыми, поэтому проблемы то и нет как таковой, но если мы хотим разбить строку данных на массив, например взяв магическую константу "__DIR__" лучше использовать DIRECTORY_SEPARATOR для функции explode
Просто указываем данную константу в скриптах и теперь наш движек может работать под разными ОС.
Http(HyperText Transfer Protocol) «протокол передачи гипертекста» - это основной сетевой протокол передачи данных в интернете, который использует клиент-серверную архитектуру. Взаимодействие между клиентом и сервером осуществляется с помощью обмена пакетами которые называются запрос (Request) и ответ (Response). Нынешняя версия 1.1 в спецификации RFC 2616.
Каждый пакет состоит из трех кусков: стартовая строка, заголовки и тело. Обязательной является только стартовая строка.
Стартовые строки разных пакетов имеют разный формат. Формат запроса "МетодЗапроса URI HTTP/Версия", формат ответа "HTTP/Версия КодСостояния Пояснение"
Некоторые методы мы используем в REST API
Representational state transfer - «передача состояния представления»
Это набор правил помогающие программисту правильно написать серверное приложение, которое взаимодействует с различными системами отображения, взаимодействия и масштабированием.
Например googleanalytics в браузере и, в приложении на телефоне.
Общение с сервером происходит через URL адреса, все происходите через протокол HTTP, поэтому обычно используются методы:
Он может быть либо массивом, который можно перебрать, либо объектом реализующий интерфейс Traversable.
Обычно реализовывают интерфейсы Iterator или IteratorAggregate которые являются наследниками Traversable
Callable - это переменные, которые могут быть вызваны как функции. То есть их можно использовать в функциях которые принимают другие функции в параметрах, тогда они будут callback функциями.
Такой тип может быть у строки, если строка включает в себя название функции. Также такой тип может быть у объекта, который включает в себя метод __invoke. Также могут использоваться статические методы класса, но для их реализации потребуется использование call_user_func()
Более подробно можно посмотреть в callback
В php используется неявное приведение типов, это означает что можно сложить две переменных оператором "+" даже если одна из них будет "int", а вторая "string". Php автоматически приведет тип второй переменной к int. Это конечно же являться и плюсом, и минусом. Т.к. может вызывать неожиданную реакцию приложения и потом сложно отследить где, что поломалось. Для решения данной проблемы нужно указывать типы данных явно, при этом хорошим тоном есть указание типов и в параметрах функций, и в возвращаемых данных методов. В общем лучше указывать тип данных везде где можно, при создании свойств в классах и т.п.
Сравнение с использование оператора "==", "!=" обычно работает также в связке с преобразованием типов, то есть если в двух переменных похожие данные например $int = 1 и $str = "1" , то при сравнении они будут идентичны, т.к. сработает неявное приведение. НО эти переменные разных типов и содержат разные данные по типу. Для исключения данной ошибки лучше использовать ВЕЗДЕ тождественные сравнения "===","!=="
Copyright © 2012-2024 All rights reserved.
created by WPS.