Співбесіда з PHP. 250+ запитань для Junior, Middle та Senior
Пропонуємо список питань, які ставлять українським розробникам на технічних співбесідах з PHP. Звісно, він не є вичерпним, проте має перевагу: його формували спеціалісти, які проводять інтерв’ю в різних ІТ-компаніях.
Попередні статті рубрики присвячені Python , .NET , JavaScript та Java .
Junior
Загальне
1.Що таке посилання?
2.Які основні операції з використанням посилань?
3.Назвіть прості типи даних, підтримувані в РНР?
4.Що таке інкремент і декремент, у чому різниця між префіксним і постфіксним інкрементом і декрементом?
5.Що таке рекурсія?
6.У чому різниця між =, == і ===?
7.Які знаєте принципи ООП?
8.Яка система типів використовується в PHP? Опишіть плюси та мінуси.
9.Чим відрізняються ключові слова: include і require, mysql_connect і mysql_pconnect?
10.Що таке інтерфейси? Чи використовуєте їх? Якщо так — розкажіть про це.
11.Що таке абстрактний клас і чим він відрізняється від інтерфейсу?
12.
Опубліковано: 01/03/21 @ 11:00
Розділ php Читати далі...
PHP: Настраиваем отладку. PhpStorm + PHP 8 + Docker + Xdebug 3
В очередной раз споткнувшись о собственную забывчивость, решил накидать небольшую заметку о том, как настроить
отладку PHP в докере через xdebug для IDE PhpStorm. Кто-то правильно скажет, что в сети полно статей на данную тему,
однако, все они не смогли спасти меня от совершения пары ошибок на которые я уже наступал ранее.
Итак, имеем следующую конфигурацию: на нашем Linux хосте есть IDE PhpStorm 2020.3, докер образ PHP версии 8.0.0,
настраиваемый в контейнере через docker-compose и установленное в том-же образе расширение для отладки xdebug версии
3.0.1. Мы хотим заниматься отладкой в любимой IDE отлавливая вызовы как через веб-браузер, так и через контейнер, к
примеру перехватывая из него запуски каких-либо CLI скриптов.
Первым делом читаем вот эту заметочку о том, как нам заставить работать отладку для скриптов
запускаемых на удаленной стороне.
Опубліковано: 17/12/20 @ 10:55
Розділ php Читати далі...
PHP: как удалить элемент массива по значению
Часто случаются ситуации, когда нам в PHP необходимо удалить определенные значения из массива. Как правило, для этого чаще всего применяется перебор, через конструкцию for или фильтрация с помощью array_filter однако, почему-то часто забывается про возможности функции array_diff . На самом деле, удаление значений из массива через array_diff выглядит более простым и лаконичным, к тому-же мы можем удалять (вычитать) из исходного массива сразу несколько массивов с необходимыми значениями, которые могут повторяться.
Опубліковано: 14/12/20 @ 07:48
Розділ php Читати далі...
PHP: заменить значения массива значениями из другого массива по ключам
Если есть необходимость заменить в исходном массиве все значения по ключам, которые присутствуют в другом массиве, навскидку вспоминается такая PHP функция, как array_replace , однако у нее есть такой неприятный побочный сайд-эффект, как объединение массивов. Иными словами, исходный (заменяемый) массив получит все ключи со значениями, которые отсутствуют в нем, но содержатся в последующих, заменяющих массивах. По мне, это довольно неожиданное поведение, которое никак не ждешь от названия array_replace , это скорее всего какой-то array_replace_merge . Однако, эта "проблема" вполне решаема с помощью вот такой маленькой, почти однострочной функции: <?php /** * @param array<mixed> $array * @param array<mixed> $replacements * * @return array<mixed> */ function arrayReplaceByKeys(array $array, array ...
Опубліковано: 13/12/20 @ 04:51
Розділ php Читати далі...
PHP дайджест #20: PHP в 2019, прийняті RFC, 7.4 вже вийшов
Основні
PHP в 2019 — пам'ять пам'ятаєте нашумілу статтю PHP: a fractal design of bad ? Вісь це відповідь на неї в контексті 2019 року, коли вже вийшов РНР 7.4 і багато іншого, що змінилось в РНР.
Linux Foundation тепер буде керувати розробкою Zend Framework.
Що нового у 7.4? — підбірка нововведень з прикладами.
PHP and JIT — розмова з Zeev Suraski (СТО в РНР) про ті, як JIT працюватиме в PHP 8.
Deprecating Short Open Tags — розмова з George Banyard (контриб'ютор в РНР) про заборону Short Open Tags і ті, як це може вплинути на РНР.
Bundled Extensions — розмова з Kalle Nielsen (PHP 7.0 Release Manager) про bundled extensions і ті, як він працював над портом РНР для Windows.
LSP and Operator Precedence — розмова з Nikita Popov (контриб'ютор в РНР) про його останні RFC і як це у яжеться з принципом підстановки Ліскова.
Опубліковано: 18/05/19 @ 07:00
Розділ php Читати далі...
PHP дайджест #19: реліз xDebug, нові RFC, робимо сайти швидкими
У випуску: основні помилки в безпеці, гейміфікація тестів, новий RFC Saner string to number comparisons.
Основні
Symfony Gets Real-time Push Capabilities!
Подкаст з Nikita Popov, інтерв'ю проводити Derick Rethans (засновник Xdebug) — говорять про новий RFC Saner string to number comparisons.
Intro to basic web application security (PHP) — хороший гайд про основні помилки у безпеці.
Як я гейміфікував тести на PHP і пройшов від 0% охоплення до 93% за 30 днів
Moving away from magic — АБО: чому я більше не хочу використовувати Laravel
Оптимізуємо швидкість роботи РНР
Design Microservice Architectures the Right Way
Hand-written service containers
Keeping (large) data providers organized in PHPUnit
Getting the most out of server side caching
Comparing PHP's Autoload
Лекція
Іван Акулов працював в Google разом з легендарним Addy Osmani над гайдами з оптимізації сайтів. Лекція Івана про те, як робити швидкі сайти в 2019 (англійською мовою).
Опубліковано: 16/03/19 @ 08:00
Розділ php Читати далі...
Що має знаті Senior PHP Developer. Результати аналізу вакансій в Україні та Каліфорнії
Які навички потрібно розвивати, щоб претендувати на роль Senior PHP Developer? Чи відрізняються вимоги в Україні та Каліфорнії, яка є Меккою програмування?
Щоб з'єднання з'ясувати це, я проаналізував 100% відкритих вакансій на DOU в Україні та LinkedIn в Каліфорнії. На мої радари потрапили серед інших вакансії компаній Facebook та Dell. Для кожної технології було підраховано відсоток вакансій, у яких вона вказана як обов'язкова, і окремо як «бажана, але не обов'язкова».
Картина в Україні та Каліфорнії багато в чому схожа, але прослідковується низка відмінностей. Щоб можна було побачити «розклад сил» наочно, Ігор Яновський створив для нас інтерактивний віджет.
Методика
Станом на 20 січня в рубриці PHP на DOU було розміщено 57 вакансій Senior Developer. У Каліфорнії на LinkedIn станом на 3 лютого мені підійшла лише 31 вакансія, що вимагала PHP.
Опубліковано: 25/02/19 @ 11:29
Розділ php Читати далі...
PHP дайджест #18: автори РНР виходять з проектом, реліз 7.3
У випуску: автори PHP і Zend Framework йдуть із Zend, реліз Symfony 4.2 і WordPress 5.0 "Bebo".
Основні
Розробникі ядра PHP і основні контрібьютери Zend Framework йдуть з Zend, а точніше з компанії Rogue Wave Software, яка його поглинула в 2015 році і вирішила, що крім Zend Server їй нічого розвивати не цікаво.
З ZF це Matthew Weier O Phinney і Enrico Zimuel. З PHP це Zeev Suraski , співзасновник Zend, і Дмитро Стогів , який зробив PHP 7 таким швидким і зараз робить JIT-компіляцію для PHP 8.
Всі вони знаходяться в пошуках нових компнаній, який зацікавлені в майбутньому PHP та ZF і будуть готові оплачувати їхній годину.
Що нового в PHP 7.3 за 30 секунд у Diffs
NPM dependency hell: comparison with Symfony, Laravel and Platform API
The Definitive PHP 5.6, 7.0, 7.1, 7.2 & 7.3 Benchmarks (2019)
WordPress 5.0 "Bebo" released
PHP Support in AWS Lambda coming soon
Accurate decimal numbers in PHP
How PHP conferences can be improved
Релізи
Вийшов PHP 7.3.
Опубліковано: 15/12/18 @ 08:00
Розділ php Читати далі...
PHP дайджест #17: Typed Properties, All frameworks sucks – Rusmus, Hacktoberfest'18
У випуску: гайд для створення сайту на Laravel, що нового в DevTools у Chrome 70, реліз Codeception 2.5, збірка найпопулярніших паттернів на РНР.
Основні
Прийняли RFC за Typed Properties — Переможенька!
Safe PHP: throwing exceptions instead of returning false
Покроковий гайд у створенні першого сайту на Ларавель
SymfonyCasts, the new official site for Symfony video tutorials
Rasmus Lerdorf: PHP Frameworks all suck!
Hacktoberfest 2018
Awesome PHP — збірка всього про РНР
Що таке APP_KEY в Laravel
Подкаст — DevOops і еволюція DevOps в 2018 році
Подкаст — Як протестувати проект під PHP 7.3?
Chrome 70 — що нового в DevTools
Івенти
Безкоштовна онлайн-лекція від мене — Ромі Севастьянова, продуктового розробника з досвідом 6+ років. Про те, яке майбутнє чекає РНР, які найпопулярніші помилки допускають новачки при вивченні PHP.
Лекція пройде онлайн в неділю 13:00. Потрібна попередня реєстрація за цим посиланням .
Релізи
Codeception 2.
Опубліковано: 13/10/18 @ 07:00
Розділ php Читати далі...
PHP дайжест #16: новинки в РНР 7.3, Laravel 5.7, головні події цього місяця
У випуску: відео Laracon 2018, автоматизація деплойменту, конференція Highload fwdays'18, реліз PHP 7.3.0.beta3, що краще .env чі config.php.
Основні
Що нового в РНР 7.3 за 30 секунд
Стан Developer Ecosystem в 2018
Caching strategies
Туторіал SPA Vue + Symfony
Laracon 2018 videos
Remote Code Execution on packagist.org
How To Automatically Deploy Your PHP Apps
PHP Benchmarks: OPcache vs OPcache w/ Performance Tweaks
Strategies for dealing with poor code in limited time
What's wrong with popular articles telling you that foo is faster than bar?
Відеозаписи з конференції CODEiD PHP, Odessa, 2018
Івенти
15 вересня відбудеться вже другий рік поспіль масштабна конференція для розробників Highload fwdays'18. Цього року плануємо зібрати понад 1000 учасників. Конференція проводитиметься пройде y 4 потоки доповідей та Speakers' Corner. Попередня програма.
Опубліковано: 07/09/18 @ 10:00
Розділ php Читати далі...
В ІТ без диплома: історії JavaScript, PHP і Scala розробників
В українському IT не більше 10% технічних спеціалістів, які свідомо відмовилися від вищої освіти. Ми знайшли деякі з них і дізналися, як склалася їхня історія з університетом, складно було шукати першу роботу без диплома і відмовляли їм у оффере з цієї причини, а також як вони освоювали IT-спеціальність і що думають про вищу освіту в Україні.
Бажаючих поділитися досвідом виявилося багато, тому слідом за першою частиною матеріалу публікуємо другу.
Олексій Єгоров , 34 роки, Senior JavaScript Developer
З професією я визначився у 11 років. Коли батьки подарували мені ZX Spectrum, я вирішив стати програмістом. Попрацював у різних компаніях: був підрозділ Oracle, відомий ігровий гігант, пара фріланс-проектів, декілька «галер». Зараз працюю на ізраїльську компанію, яка займається розробкою SaaS-продукту для організації масових заходів (конференцій, концертів, виставок тощо).
Я закінчив технікум радіоелектронного приладобудування на Донбасі.
Опубліковано: 26/07/18 @ 10:00
Розділ javascript php Читати далі...
PHP дайджест #15: що буде в PHP 8, історія перепису перших версій PHP
У випуску: що хорошого в ООП, Word Press .NET, шпаргалка для вирішення найчастіших проблем з Git, найдивніші програми на PHP.
Основні
Відкритий лист Zeev Suraski — про PHP 8.
Мій аналіз відкритого листа Zeev Suraski — можна прочитати тут.
The History of Rewriting PHP — ще одна стаття серії The History of the Web. Цього разу про ті, як Rasmus Lerdorf та Zeev Suraski переписували перші версії PHP.
My Standout Features in PHP7 — нагадування про основні нововведення та фічі в PHP7, про які потрібно не забувати.
Code execution у Word Press — ще одна відкрита бага в Word Press.
Word Press .NET — як скомпілювати Word Press для того, щоб він працював на .NET.
Make PHP Great Again — роздуми, як покращити PHP.
Phpdbg brenchmark — Phpdbg is much faster than Xdebug for code coverage.
PHP UK Conference 2014 — Julien Pauli розповідає, як працює PHP Opcache.
Подкаст — PHP was not designed for that?! with Joe Watkins.
Опубліковано: 21/07/18 @ 07:00
Розділ php Читати далі...
PHP дайджест #14: typed properties, PHP in 2018, Adobe купує Magento
У випуску: 100 найпопулярніших PHP функцій, статті про Laravel, записи всіх виступів на PHP fwdays'18.
Основні
PHP в 2018 (відео) — Rasmus Lerdorf (автор PHP) розповідає про стан PHP в 2018 році.
[PHP RFC] Typed Properties v2 — Bob Weinand і Nikita Popov пропонують typed properties.
Adobe купує Magento — Adobe купує Magento за 1.68 мільярда доларів.
Computer vision and machine learning in PHP using the library opencv
PHP top 100 — 100 найпопулярніших PHP функцій з 1900 open source проектів.
PDO vs. MySQLi: The Battle of PHP Database APIs
The State of Developer Ecosystem in 2018
П'ятихвилинка PHP: Випуск № 33 — JWT c Артемом Пулявиным (подкаст)
ReactPHP: Simple HTTP Server (відео)
Serverless and PHP: Performances
PHP-FIG April — May — список апдейтів від PHP-FIG за попередні два місяці.
Wordpress May 2018 — дайджест по Wordpress за травень.
Список статей про Laravel — великий список з конкурсом статей про Laravel.
SOLID Principles — simple and easy explanation.
Опубліковано: 23/06/18 @ 07:00
Розділ php Читати далі...
PHP дайджест #13: реліз 7.3, що нас чекає в PHP 8 та майбутнє програмування
У випуску: як працює Dependency Injection, Software Design Patterns в Symfony, конференція PHP fwdays'18.
Основні
PHP Versions Stats — 2018.1 Edition — статистика використання PHP за перший квартал 2018 від засновника Packagist. Цікаво, що PHP >= 7.0 вже використовують 78,22% розробників, які запускають Composer у своїх проектах. 68,74% бібліотек підтримують PHP 5.6 і нижче.
Learning Design Patterns with Symfony — велика презентація по Software Design Patterns в Symfony.
Що нас чекає в PHP 8 — розбір деякий нових штук, таких як PHP JIT.
Return True — цікава головоломка. Потрібно в код функції (який ви бачите) передавати такий аргумент, щоб в кінці отримати true.
PHP 7.3 update — що нового в релізі PHP 7.3.
400 сайтів Drupal атаковані криптовалютним майнером — у Drupal знову проблеми з безпекою.
Опубліковано: 18/05/18 @ 10:00
Розділ php Читати далі...
PHP дайджест #12: Laravel is hiring, 7.24, 8.0 вже в роботі
У випуску: як використовувати Composer ефективно, curly bracket, PHP 7.2.1, функція monotonic timer.
Статті
Перелік крутих, але маловідомих фіч PhpStorm
Wordpress розробникі, перестаньте використовувати старі версії РНР
Перший RFC для PHP 8.0 прийнято
Modern PHP Without a Framework
Перелік крутих статей про DDD:
Domain-Driven Design, part 1 — Language
Domain-Driven Design, part 2 — Model
Domain-Driven Design, part 3 — Simplify Object Model
Domain-Driven Design, part 4 — Implementation
Domain-Driven Design, part 6 — Doctrine Repository
Domain-Driven Design, part 7 — Alternative Relational Database Mapping
Domain-Driven Design, part 8 — Services and Factories
Релізи
PHP 7.2.4 Released
PHP 7.1.16 Released
PHP 5.6.35 Released
Ubuntu 18.04 буде поставлятись з PHP 7.2
PhpStorm 2018.1 is released
Zend Expressive 3
Codeception 2.
Опубліковано: 31/03/18 @ 10:00
Розділ php Читати далі...
PHP дайджест #11: найпопулярніші помилки в коді на PHP, реліз Composer 1.6.0, Developer Survey 2018
У випуску: як використовувати Composer ефективно, curly bracket, PHP 7.2.1, функція monotonic timer.
Статті
Eliminating Visual Debt \_(?)_/
17 порад про те, як використовувати компосер ефективно
Найпопулярніші помилки в коді на PHP на Stack Overflow або ТОР 10 security bugs
The end of Silex
What ORMs have taught me : just learn SQL
Що користувачі редіта /r/PHP вивчили за 2017 рік
PHP-DI 6 : turning into a compiled container for maximum performances
Історія HTTP/2, PHP і Symfony [Слайди]
Deal with Memory Gently using «Yield» in PHP
Цікава стаття про curly bracket
Релізи
Composer 1.6.0
PHP-PH 1.0.0
PHP 7.2.1
PSR-15 has been Accepted
HHVM 3.24 (кінець підтримки PHP5)
Цікаві бібліотеки
Документація до PHP source code
Процес-менеджер на PHP PHP
Open source API management platform
Різне
Для тих, хто цікавиться вивченням нових технологій та розширенням компетенцій. Тестуємо з топовими українськими розробниками формат онлайн-інтенсиву по Front-end.
Опубліковано: 27/01/18 @ 08:16
Розділ php Читати далі...
PHP дайджест #10: готуємося до PHP 7.2, бенчмарки популярних PHP функцій, реліз Bolt 3.4.0
У випуску: як писався сайд проект на PHP для пошуку DNS записів, статистика версій PHP, онлайн-курс по front-end, ідея для open-source проекту.
Статті
Shorthand comparisons in PHP
List of Big-O for PHP functions , або ж Бенчмарки популярних PHP функцій
Все ще 90% сайтів на PHP використовує PHP 5
Symfony 4: An Update on Flex
Детальний розбір SQL Injection в WordPress
The Magic Behind Async PHP
Буде цікаво початківцям. Як писався сайд проект на PHP для пошуку DNS записів
PHP still missing bits: узагальнення
Статистика версій PHP
Get ready for PHP 7.2
So you ran COMPOSER as root?
Implementing CORS in Zend Expressive
[RFC] Прийняли Flexible Heredoc and Nowdoc Syntaxes
Поради сеньйорів: як прокачати знання junior PHP
Релізи
PHP 7.2.0RC6 Released
PHP 5.6.32
Bolt 3.4.
Опубліковано: 25/11/17 @ 08:00
Розділ php Читати далі...
Поради сеньйорів: як прокачати знання junior PHP
У рубриці «Поради сеньйорів» досвідчені фахівці діляться практичними порадами з джуниорами — загальні лайфхаки по навчанню, які книги та ресурси читати, які навички освоювати і багато іншого. У цьому випуску говоримо про PHP розробників.
Олександр Скакунів , PHP Architect, 14 років досвіду розробки PHP:
Головна проблема, з якою стикаєшся, коли починаєш вивчати PHP — психологічний тиск. Справа в непопулярності цієї мови в середовищі програмістів, принаймні, на словах. Можна почути багато неприємних епітетів, в основному зводяться до фрази: «Недоязык формошлепов для створення говносайтиков». Твоє завдання — не забувати, що «собаки гавкають, а караван іде». Наприклад, на РНР написаний такий проект, як «Фейсбук», і цей факт відразу ставить на місце любителів вибирати мову програмування за його модності.
Пс, сядь-но ближче, що скажу. Суто між нами: РНР — справді не найкраща мова в світі. Основних причин я назву дві — і тобі краще про них знати.
Опубліковано: 23/11/17 @ 11:47
Розділ php Блоги Читати далі...
PHP дайджест #9: PHP 7.2, Async PHP, Hacktoberfest, Hack Joomla
У випуску: що нового в PHP 7.2, вразливість Joomla! 3.7.5, Hacktoberfest — долучайтеся до PHP-проектів на GitHub.
Статті
What's New in PHP 7.2
Stop the pain, upgrade to PHP 7
From PHP to with JavaScript Node.js — I have been a PHP developer for more than 10 years and I recently moved to the JS full stack world...
Joomla! 3.7.5 — Takeover in 20 Seconds with LDAP Injection
Hacktoberfest! Get a free tee for contributing to open source PHP projects.
What you need to know about environment variables with PHP
PHP 7.1 vs 7.2 Benchmarks (with Docker and Symfony Flex)
Partitioning for concurrency in synchronous business processes
The global PHP community continues to toxify itself, and we need to halt it for the sake of our peers
Event-Driven Architecture
Релізи
PHP 7.2.0 Release Candidate 3 Released
PHP 7.1 is now available for AWS Elastic Beanstalk
PHP 7.
Опубліковано: 21/10/17 @ 07:00
Розділ php Читати далі...
PHP дайджест #5: PHP Узагальнення, асинхронне програмування, новий Symfony 3.3
У випуску: веб-платформа для нового президента Франції, як використовувати Laravel в enterprise проектах, що таке PSR-7, як захистити RESTful API, PHP 7.1.5 Release.
Статті
Веб-платформа з відкритим кодом для нового президента Франції.
PHP Узагальнення і чому вони нам потрібні.
Що таке асинхронне програмування ?
Dependency Injection Smells
What is PSR-7 and How to Use It.
Як використовувати Laravel у великих enterprise проектах?
Туторіали
Master Zend Framework опублікували третю частину їх серії (1 частина , 2 частина ). У 3 останній статті Matthew Setter показує, як побудувати повний процес від розробки до деплоя за допомогою Docker.
Як захистити RESTful API? Приклад на Yii 2 фреймворці.
Новий Symfony 3.3 , зміни в Service Configuration.
Релізи
spaceship-zsh-theme тепер підтримує PHP.
PHP 7.1.5 Release
Deployer 5.0.0
Symfony 3.3.0
Codeception 2.3
Цікаві бібліотеки
Personal Relationship Manager — a CRM to manage your friends and family.
Опубліковано: 10/06/17 @ 10:00
Розділ php Читати далі...