SlideShare ist ein Scribd-Unternehmen logo
1 von 40
Downloaden Sie, um offline zu lesen
Коротко о PHP
…или Откуда взялся слон
Немного об истории
• PHP/FI
• PHP 3
• PHP 4
• PHP 5
• …PHP 6…
• PHP 7
PHP/FI 1995-1997
Personal Home Page
Набор скриптов, созданный датским
программистом по имени Расмус
Леордорф (Rasmus Lerdorf)
Personal Home Page / Forms Interpreter
PHP/FI включал базовую
функциональность современного PHP.
Исполозовали около 1% (примерно 50
тысяч) всех интернет-доменов.
PHP 3 1997-1998
Энди Гутманс (Andi Gutmans) и Зеев
Сураски (Zeev Suraski)
Сильнейших стороной PHP 3.0 была
возможность расширения ядра
дополнительными модулями.
PHP 3.0 уже был установлен
приблизительно на 10 % веб-серверов
Интернета
PHP 4 1998-2008
PHP 3.0 не имел качественной поддержки
модулей и приложения работали неэффективно.
В 1999 создан новый движок, названный Zend
Engine (от имён создателей, Зеева и Энди, также
основателей Zend Technologies).
Ключевые нововведения, такие как поддержка
сессий, буферизация вывода, более безопасные
способы обработки вводимой пользователем
информации.
PHP 5 2004-…
Ряд изменений и дополнений:
• Увеличена скорость работы, примерно на 10-20%
• Введено пространство имён
• Позднее статическое связывание и специальный метод __callStatic()
• Лямбда-функции и замыкания
• Добавление расширений: intl, phar, fileinfo и sqlite3
• Опциональный сборщик мусора
• Был написан драйвер MySQLnd для самой популярной у PHP разработчиков
базы данных MySQL. С появлением нативного драйвера скорость работы с
Mysql значительно увеличилась, также новый драйвер доступен уже в
стандартной сборке(ранее это было невозможно из-за лицензии, связанной с
libmysql)
• Отмена поддержки версий операционной системы до Windows 2000 (Windows
98, NT4, и.т.д.)
• Новые синтаксические конструкции, такие как NOWDOC, ограниченный GOTO,
короткий вид тернарного оператора «?:»
• и другое.
PHP 6 2006-…
В марте 2010 года разработка PHP6 была
признана бесперспективной из-за сложностей
с поддержкой Юникода. Исходный код PHP6
перемещён на ветвь, а основной линией
разработки стала версия 5.4.
PHP 7 beta 1
Немного об истории
Hello world
Типы данных
PHP поддерживает 8 базовых типов данных.
• 4 скалярных типа:
– Boolean
– Integer
– Float
– String
• 2 комплексных (составных) типа:
– Array
– Object
• 2 специальных типа:
– Resource
– NULL
Перевернуть массив?
Перевернуть массив
Загадка 
Классы
Немного магии
• __construct
• __destruct
• __call
• __callStatic
• __get
• __set
• __isset
• __unset
• __sleep
• __wakeup
• __toString
• __set_state
• __clone
Frameworks
• Zend Framework / Zend Framework 2
• Sympfony
• Yii
• CodeIgniter
• …
Популярность
Zend Frameworks
Zend Frameworks
Zend_Controller dependencies
Шаблоны
программирования
1. Порождающие
• Abstract Factory (Абстрактная фабрика).
• Factory Method (Фабричный метод).
• Singleton (Одиночка).
• Prototype (Прототип).
• Builder (Строитель).
Шаблоны
программирования
2. Структурные
• Adapter (Адаптер)
• Bridge (Мост)
• Composite (Компоновщик)
• Decorator (Декоратор)
• Facade (Фасад)
• Flyweight (Приспособленец)
• Proxy (Прокси)
Шаблоны
программирования
3. Паттерны поведения
• Chain of Responsibility (Цепочка обязанностей)
• Command (Команда)
• Interpreter (Интерпретатор)
• Iterator (Итератор)
• Mediator (Медиатор)
• Memento (Хранитель)
• Observer (Наблюдатель)
• State (Состояние)
• Etc…
Laravel
•Bundles
•Eloquent ORM
•Application logic
•Reverse routing
•Restful controllers
•Class auto loading
•View composers
•Migrations
•Unit testing
Phalcon framework
A full-stack PHP framework delivered as a C-extension
С расширение
как фреймворк
Плюсы:
1.Быстро
2.Дешево
3.Чисто
Минусы
1.Одна версия фреймворка на все
приложения
2.Отсутствие поддержки на
shared хостинге
Производительность
Еще производительность
И ещё немного
Zephir - Zend Engine Php
Intermediate
Zephir - высокоуровневый язык программирования
для быстрого и простого создания PHP extensions.
Мотивация
• С — сложно.
• Zend Engine — сложно + страшно + долго.
• С+Zend Engine — (сложно+страшно)^2.
Решение
Zephir — DSL (Domain Specific Language).
*.zep
С-parser (json)
Static analysis + Block Optimisation
Code generation + Optimisation
С + Zephir Kernel
Make files
Что под капотом?
Чем отличается от PHP
• Декларативный стиль.
• Статическая/динамическая типизация.
• Пространства имен - обязательно!
• Запрещен глобальный код.
• Компиляция Ahead-of-time.
• Безопасная работа с памятью.
Memcached
Литература
• Php.net
• Programming PHP by Tatroe, Kevit…
• Design Patterns: Elements of Reusable
Object-Oriented Software by Gang of Four
Q&A?
The magical, mystical
and elegant PHP mascot
ele.. PHP.. wait for it!: The elePHPant!
By Vincent Pontier, 1998

Weitere ähnliche Inhalte

Ähnlich wie Роман Еникеев - PHP или откуда взялся слон

Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах solertia
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Ontico
 
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013Alex Chistyakov
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Serguei Gitinsky
 
Sphinx: распределяя индексы.
Sphinx: распределяя индексы.Sphinx: распределяя индексы.
Sphinx: распределяя индексы.MageCloud
 
всё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certifiedвсё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certifiedYuri Afanasiev
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел КрынецкийJSC “Arcadia Inc”
 
Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Ontico
 
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Lenvendo
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorYandex
 
Дмитрий Стогов
Дмитрий СтоговДмитрий Стогов
Дмитрий СтоговCodeFest
 
Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.Nikolaj Sarry
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
 
Денис Иванов
Денис ИвановДенис Иванов
Денис ИвановCodeFest
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальBadoo Development
 

Ähnlich wie Роман Еникеев - PHP или откуда взялся слон (20)

Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах Практика эксплуатации уязвимостей в прикладных программах
Практика эксплуатации уязвимостей в прикладных программах
 
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
Инструменты высоконагруженных проектов - кэширование и очереди, Вячеслав Моск...
 
php frameworks
php frameworksphp frameworks
php frameworks
 
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013SmartOS/Solaris app tuning tools/technologies on HL++ 2013
SmartOS/Solaris app tuning tools/technologies on HL++ 2013
 
Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013Git in Sky presentation @ HighLoad++ 2013
Git in Sky presentation @ HighLoad++ 2013
 
Sphinx: распределяя индексы.
Sphinx: распределяя индексы.Sphinx: распределяя индексы.
Sphinx: распределяя индексы.
 
всё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certifiedвсё что вы хотели знать о Zend certified
всё что вы хотели знать о Zend certified
 
Sivko
SivkoSivko
Sivko
 
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
2015-12-12 | AzovDevMeetup 2015 | Enterprise приложения на PHP | Павел Крынецкий
 
Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)Сергей Житинский, Александр Чистяков (Git in Sky)
Сергей Житинский, Александр Чистяков (Git in Sky)
 
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
Конференция Highload++ 2014, "Инструменты высоконагруженных проектов: кеширов...
 
Что нового в NOVA Microhypervisor
Что нового в NOVA MicrohypervisorЧто нового в NOVA Microhypervisor
Что нового в NOVA Microhypervisor
 
Дмитрий Стогов
Дмитрий СтоговДмитрий Стогов
Дмитрий Стогов
 
JPHP
JPHPJPHP
JPHP
 
Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.Язык программирования PHP. EasyCode. Стартовая презентация.
Язык программирования PHP. EasyCode. Стартовая презентация.
 
Catalyst – MVC framework на Perl (RIT 2008)
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)
 
Денис Иванов
Денис ИвановДенис Иванов
Денис Иванов
 
Как мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон ДовгальКак мы делаем модули PHP в Badoo – Антон Довгаль
Как мы делаем модули PHP в Badoo – Антон Довгаль
 
Fuzz.txt
Fuzz.txtFuzz.txt
Fuzz.txt
 
Fuzz.txt
Fuzz.txtFuzz.txt
Fuzz.txt
 

Mehr von DataArt

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR PartnersDataArt
 
Event management в IT
Event management в ITEvent management в IT
Event management в ITDataArt
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from insideDataArt
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)DataArt
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDataArt
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtDataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...DataArt
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's lifeDataArt
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиDataArt
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOpsDataArt
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real lifeDataArt
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестированияDataArt
 
Selenoid
SelenoidSelenoid
SelenoidDataArt
 
Selenide
SelenideSelenide
SelenideDataArt
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"DataArt
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...DataArt
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGDataArt
 

Mehr von DataArt (20)

DataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human ApproachDataArt Custom Software Engineering with a Human Approach
DataArt Custom Software Engineering with a Human Approach
 
DataArt Healthcare & Life Sciences
DataArt Healthcare & Life SciencesDataArt Healthcare & Life Sciences
DataArt Healthcare & Life Sciences
 
DataArt Financial Services and Capital Markets
DataArt Financial Services and Capital MarketsDataArt Financial Services and Capital Markets
DataArt Financial Services and Capital Markets
 
About DataArt HR Partners
About DataArt HR PartnersAbout DataArt HR Partners
About DataArt HR Partners
 
Event management в IT
Event management в ITEvent management в IT
Event management в IT
 
Digital Marketing from inside
Digital Marketing from insideDigital Marketing from inside
Digital Marketing from inside
 
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)What's new in Android, Igor Malytsky ( Google Post I|O Tour)
What's new in Android, Igor Malytsky ( Google Post I|O Tour)
 
DevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проектDevOps Workshop:Что бывает, когда DevOps приходит на проект
DevOps Workshop:Что бывает, когда DevOps приходит на проект
 
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArtIT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
IT Talk Kharkiv: «‎Soft skills в IT. Польза или вред? Максим Бастион, DataArt
 
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han... «Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
«Ноль копеек. Спастись от выгорания» — Сергей Чеботарев (Head of Design, Han...
 
Communication in QA's life
Communication in QA's lifeCommunication in QA's life
Communication in QA's life
 
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьмиНельзя просто так взять и договориться, или как мы работали со сложными людьми
Нельзя просто так взять и договориться, или как мы работали со сложными людьми
 
Знакомьтесь, DevOps
Знакомьтесь, DevOpsЗнакомьтесь, DevOps
Знакомьтесь, DevOps
 
DevOps in real life
DevOps in real lifeDevOps in real life
DevOps in real life
 
Codeless: автоматизация тестирования
Codeless: автоматизация тестированияCodeless: автоматизация тестирования
Codeless: автоматизация тестирования
 
Selenoid
SelenoidSelenoid
Selenoid
 
Selenide
SelenideSelenide
Selenide
 
A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"A. Sirota "Building an Automation Solution based on Appium"
A. Sirota "Building an Automation Solution based on Appium"
 
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
Эмоциональный интеллект или как не сойти с ума в условиях сложного и динамичн...
 
IT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNGIT talk: Как я перестал бояться и полюбил TestNG
IT talk: Как я перестал бояться и полюбил TestNG
 

Роман Еникеев - PHP или откуда взялся слон

  • 1. Коротко о PHP …или Откуда взялся слон
  • 2. Немного об истории • PHP/FI • PHP 3 • PHP 4 • PHP 5 • …PHP 6… • PHP 7
  • 3. PHP/FI 1995-1997 Personal Home Page Набор скриптов, созданный датским программистом по имени Расмус Леордорф (Rasmus Lerdorf) Personal Home Page / Forms Interpreter PHP/FI включал базовую функциональность современного PHP. Исполозовали около 1% (примерно 50 тысяч) всех интернет-доменов.
  • 4. PHP 3 1997-1998 Энди Гутманс (Andi Gutmans) и Зеев Сураски (Zeev Suraski) Сильнейших стороной PHP 3.0 была возможность расширения ядра дополнительными модулями. PHP 3.0 уже был установлен приблизительно на 10 % веб-серверов Интернета
  • 5. PHP 4 1998-2008 PHP 3.0 не имел качественной поддержки модулей и приложения работали неэффективно. В 1999 создан новый движок, названный Zend Engine (от имён создателей, Зеева и Энди, также основателей Zend Technologies). Ключевые нововведения, такие как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации.
  • 6. PHP 5 2004-… Ряд изменений и дополнений: • Увеличена скорость работы, примерно на 10-20% • Введено пространство имён • Позднее статическое связывание и специальный метод __callStatic() • Лямбда-функции и замыкания • Добавление расширений: intl, phar, fileinfo и sqlite3 • Опциональный сборщик мусора • Был написан драйвер MySQLnd для самой популярной у PHP разработчиков базы данных MySQL. С появлением нативного драйвера скорость работы с Mysql значительно увеличилась, также новый драйвер доступен уже в стандартной сборке(ранее это было невозможно из-за лицензии, связанной с libmysql) • Отмена поддержки версий операционной системы до Windows 2000 (Windows 98, NT4, и.т.д.) • Новые синтаксические конструкции, такие как NOWDOC, ограниченный GOTO, короткий вид тернарного оператора «?:» • и другое.
  • 7. PHP 6 2006-… В марте 2010 года разработка PHP6 была признана бесперспективной из-за сложностей с поддержкой Юникода. Исходный код PHP6 перемещён на ветвь, а основной линией разработки стала версия 5.4.
  • 10.
  • 12. Типы данных PHP поддерживает 8 базовых типов данных. • 4 скалярных типа: – Boolean – Integer – Float – String • 2 комплексных (составных) типа: – Array – Object • 2 специальных типа: – Resource – NULL
  • 17. Немного магии • __construct • __destruct • __call • __callStatic • __get • __set • __isset • __unset • __sleep • __wakeup • __toString • __set_state • __clone
  • 18. Frameworks • Zend Framework / Zend Framework 2 • Sympfony • Yii • CodeIgniter • …
  • 22. Шаблоны программирования 1. Порождающие • Abstract Factory (Абстрактная фабрика). • Factory Method (Фабричный метод). • Singleton (Одиночка). • Prototype (Прототип). • Builder (Строитель).
  • 23. Шаблоны программирования 2. Структурные • Adapter (Адаптер) • Bridge (Мост) • Composite (Компоновщик) • Decorator (Декоратор) • Facade (Фасад) • Flyweight (Приспособленец) • Proxy (Прокси)
  • 24. Шаблоны программирования 3. Паттерны поведения • Chain of Responsibility (Цепочка обязанностей) • Command (Команда) • Interpreter (Интерпретатор) • Iterator (Итератор) • Mediator (Медиатор) • Memento (Хранитель) • Observer (Наблюдатель) • State (Состояние) • Etc…
  • 25. Laravel •Bundles •Eloquent ORM •Application logic •Reverse routing •Restful controllers •Class auto loading •View composers •Migrations •Unit testing
  • 26. Phalcon framework A full-stack PHP framework delivered as a C-extension
  • 27. С расширение как фреймворк Плюсы: 1.Быстро 2.Дешево 3.Чисто Минусы 1.Одна версия фреймворка на все приложения 2.Отсутствие поддержки на shared хостинге
  • 31.
  • 32. Zephir - Zend Engine Php Intermediate Zephir - высокоуровневый язык программирования для быстрого и простого создания PHP extensions.
  • 33. Мотивация • С — сложно. • Zend Engine — сложно + страшно + долго. • С+Zend Engine — (сложно+страшно)^2.
  • 34. Решение Zephir — DSL (Domain Specific Language).
  • 35. *.zep С-parser (json) Static analysis + Block Optimisation Code generation + Optimisation С + Zephir Kernel Make files Что под капотом?
  • 36. Чем отличается от PHP • Декларативный стиль. • Статическая/динамическая типизация. • Пространства имен - обязательно! • Запрещен глобальный код. • Компиляция Ahead-of-time. • Безопасная работа с памятью.
  • 38. Литература • Php.net • Programming PHP by Tatroe, Kevit… • Design Patterns: Elements of Reusable Object-Oriented Software by Gang of Four
  • 39. Q&A?
  • 40. The magical, mystical and elegant PHP mascot ele.. PHP.. wait for it!: The elePHPant! By Vincent Pontier, 1998