Статья обсуждает два популярных подхода в объектно-ориентированном программировании: наследование и композицию. Автор рассматривает различия и сходства между этими подходами и исследует, когда использование каждого из них может быть наиболее предпочтительным в различных ситуациях. Он также подробно объясняет, какие проблемы могут возникнуть при неправильном использовании этих подходов и как выбрать наиболее подходящий вариант для конкретной задачи.
stitcher.io
"Is A" or "Acts As" - stitcher.io
A blog about modern PHP, the web, and programming in general. Follow my newsletter and YouTube channel as well.
👍5🍌2❤1🌚1
🤖Собрали для вас нейросети для разработки (помимо Chat GPT) — сохраняйте и тестируйте⬇️
🔍Code Mentor оптимизирует и рефакторит код
🔍Copilot by GitHub помогает писать код и дополняет его своими предложениями
🔍ExplainDev обучает в процессе и помогает разобраться в коде
🔍GPT Engineer может всю работу сделать за вас — нужно только сказать, что хотите написать
🔍CodeT5 преобразовывает запрос в код и дописывает начатые функции
🔍Polycoder бесплатный помощник, который способен генерировать код на 12 языках программирования
🔍Tabnine дописывает код за вами — даже полноценные строчки (но только в платной версии)
🔍Mintlify пишет документацию и комментарии
🔍Cogram переводит запрос на язык баз данных и интегрируется со средой разработки Jupyter
Бонус:
👨🏫Agent GPT устанавливает в вашем браузере ИИ-агента, который помогает в выполнении поставленной задачи (можно использовать не только при разработке, но и при планировании путешествия и для других личных задач)
Оригинал
🔍Code Mentor оптимизирует и рефакторит код
🔍Copilot by GitHub помогает писать код и дополняет его своими предложениями
🔍ExplainDev обучает в процессе и помогает разобраться в коде
🔍GPT Engineer может всю работу сделать за вас — нужно только сказать, что хотите написать
🔍CodeT5 преобразовывает запрос в код и дописывает начатые функции
🔍Polycoder бесплатный помощник, который способен генерировать код на 12 языках программирования
🔍Tabnine дописывает код за вами — даже полноценные строчки (но только в платной версии)
🔍Mintlify пишет документацию и комментарии
🔍Cogram переводит запрос на язык баз данных и интегрируется со средой разработки Jupyter
Бонус:
👨🏫Agent GPT устанавливает в вашем браузере ИИ-агента, который помогает в выполнении поставленной задачи (можно использовать не только при разработке, но и при планировании путешествия и для других личных задач)
Оригинал
❤4👍3🍌1
#хочу_спросить
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
Задавайте любые вопросы о программировании и получайте ответы от пользователей. В комментариях под постом укажите #язык, #стек и/или #библиотеку, по которым задаете вопрос.
❤1
Недавно OpenAI выпустила обновление для ChatGPT, в котором представлены новые функции, позволяющие разработчикам описывать функции языковой модели — gpt-4-0613 и gpt-3.5-turbo-0613. Эти функции позволяют создавать объекты JSON, содержащие аргументы для запуска этих функций на основе пользовательского ввода.
Сегодня мы рассмотрим пример этой новой функции. Вы можете использовать его для получения информации об IP-адресе, предыдущих заказах, информации из часто задаваемых вопросов, прогнозе погоды или любой другой необходимой информации.
Сегодня мы рассмотрим пример этой новой функции. Вы можете использовать его для получения информации об IP-адресе, предыдущих заказах, информации из часто задаваемых вопросов, прогнозе погоды или любой другой необходимой информации.
DEV Community
Usage Laravel and ChatGPT "Function calling"
Recently, OpenAI released an update for ChatGPT, introducing new features that allow developers to...
❤7👍1
Зачем нужно ключевое слово final?
Ключевое слово "final" в PHP используется для обозначения, что класс, метод или свойство не может быть изменен или унаследован в дочерних классах.
Если класс объявлен как final, то он не может быть унаследован, и не может быть основой для других классов.
Если метод объявлен как final, то он не может быть переопределен (перезаписан) в дочерних классах.
Если свойство объявлено как final, то его значение уже не может быть изменено, и оно становится константой.
#вопросы_с_собеседований
Ключевое слово "final" в PHP используется для обозначения, что класс, метод или свойство не может быть изменен или унаследован в дочерних классах.
Если класс объявлен как final, то он не может быть унаследован, и не может быть основой для других классов.
Если метод объявлен как final, то он не может быть переопределен (перезаписан) в дочерних классах.
Если свойство объявлено как final, то его значение уже не может быть изменено, и оно становится константой.
#вопросы_с_собеседований
❤7💯5👍2
FilamentPHP: первый взгляд
Статья обсуждает новый пакет под названием FilamentPHP, который создан для разработки веб-приложений на базе Laravel. По сути, это фреймворк внутри фреймворка, состоящий из нескольких частей: построителя форм, построителя таблиц и пакета уведомлений, а также админ-панели, которая их объединяет. Здесь рассматриваются основные возможности и особенности фреймворка, а также предлагается пошаговое руководство по созданию простого проекта с использованием FilamentPHP.
Статья обсуждает новый пакет под названием FilamentPHP, который создан для разработки веб-приложений на базе Laravel. По сути, это фреймворк внутри фреймворка, состоящий из нескольких частей: построителя форм, построителя таблиц и пакета уведомлений, а также админ-панели, которая их объединяет. Здесь рассматриваются основные возможности и особенности фреймворка, а также предлагается пошаговое руководство по созданию простого проекта с использованием FilamentPHP.
Fly
FilamentPHP: a first look
A first look at Filament, a framework-within-a-framework!
❤14
Постановка задач в очередь Laravel сторонними сервисами
При работе над проектом довольно часто возникает ситуация, когда необходимо, чтобы один сервис поставил задачу для другого сервиса. Задача довольно тривиальная, если на обеих сторонах используется один и тот же фреймворк. Но все становится намного интересней, когда на стороне подписчика допустим Laravel со своим дефолтным форматом, а на стороне издателя что‑то модное на Go.
При работе над проектом довольно часто возникает ситуация, когда необходимо, чтобы один сервис поставил задачу для другого сервиса. Задача довольно тривиальная, если на обеих сторонах используется один и тот же фреймворк. Но все становится намного интересней, когда на стороне подписчика допустим Laravel со своим дефолтным форматом, а на стороне издателя что‑то модное на Go.
Хабр
Постановка задач в очередь Laravel сторонними сервисами
При работе над проектом ( будь то хайповые микросервисы или монолит ) довольно часто возникает ситуация, когда необходимо, чтобы один сервис поставил задачу для другого сервиса. Задача...
❤10👍4🍌2🤔1
Все из нас писали пет-проекты. Возможно ли завершить такой проект и главное как? Ведь постоянно (особенно перед сном) приходят мысли что-то доработать, добавить новый функционал прочее.⬇️⬇️⬇️
❤8
PHP 8.2: атрибут SensitiveParameter
Атрибут "SensitiveParameter" позволяет пометить параметры функций и методов как "чувствительные" (sensitive). Это означает, что значения этих параметров не должны выводиться в журналы или трассировки, чтобы предотвратить утечку конфиденциальной информации, такой как пароли или ключи API.
Атрибут "SensitiveParameter" позволяет пометить параметры функций и методов как "чувствительные" (sensitive). Это означает, что значения этих параметров не должны выводиться в журналы или трассировки, чтобы предотвратить утечку конфиденциальной информации, такой как пароли или ключи API.
👍14❤8
🐇 Как проводить успешные переговоры: 3 правила активного слушания
Разбираемся, как избежать факапа на важных переговорах.
Разбираемся, как избежать факапа на важных переговорах.
❤7👍4🌭1🍌1
Маст-хэв PHP-инструменты
В последние годы PHP динамично развивался с появлением новых версий языка, содержащих ряд новых фич, депрекаций и более строгий синтаксис. Кроме того, библиотеки и фреймворки, такие как Symfony, постоянно претерпевают изменения: каждые полгода появляются новые минорные релизы, а каждые два года - мажорные, наиболее существенные. Для нас в Westwing очень важно регулярно обновлять имеющуюся кодовую базу, чтобы она оставалась работоспособной, безопасной и актуальной. К счастью, в сообществе PHP появилось множество инструментов, способствующих улучшению кодовой базы.
В последние годы PHP динамично развивался с появлением новых версий языка, содержащих ряд новых фич, депрекаций и более строгий синтаксис. Кроме того, библиотеки и фреймворки, такие как Symfony, постоянно претерпевают изменения: каждые полгода появляются новые минорные релизы, а каждые два года - мажорные, наиболее существенные. Для нас в Westwing очень важно регулярно обновлять имеющуюся кодовую базу, чтобы она оставалась работоспособной, безопасной и актуальной. К счастью, в сообществе PHP появилось множество инструментов, способствующих улучшению кодовой базы.
Хабр
Маст-хэв PHP-инструменты
В последние годы PHP динамично развивался с появлением новых версий языка, содержащих ряд новых фич, депрекаций и более строгий синтаксис. Кроме того, библиотеки и фреймворки, такие как Symfony,...
❤10👍2🔥1
Smarty template engine
Smarty — это шаблонизатор для PHP, облегчающий отделение представления (HTML/CSS) от логики приложения.
Smarty — это шаблонизатор для PHP, облегчающий отделение представления (HTML/CSS) от логики приложения.
GitHub
GitHub - smarty-php/smarty: Smarty is a template engine for PHP, facilitating the separation of presentation (HTML/CSS) from application…
Smarty is a template engine for PHP, facilitating the separation of presentation (HTML/CSS) from application logic. - smarty-php/smarty
👍6❤1
Понимание PHP-FPM: полное руководство
В этой статье изучается мир PHP-FPM, изучая его функции, преимущества и то, как он может повысить производительность приложений на основе PHP.
В этой статье изучается мир PHP-FPM, изучая его функции, преимущества и то, как он может повысить производительность приложений на основе PHP.
DEV Community
Understanding PHP-FPM: A Comprehensive Guide
Introduction PHP (Hypertext Preprocessor) is still the most popular server-side scripting...
❤7🍌2👍1😁1
Что вам известно о шаблонах GoF?
Шаблоны GoF (Gang of Four) - это набор паттернов проектирования, описанных в книге "Design Patterns: Elements of Reusable Object-Oriented Software" авторов Эриха Гаммы, Ричарда Хелма, Ральфа Джонсона и Джона Влиссидеса.
В PHP многие шаблоны GoF также могут быть использованы для решения различных задач. Некоторые из них:
1. Порождающие шаблоны:
- Фабричный метод (Factory Method): определяет интерфейс для создания объектов, но позволяет подклассам решать, какой класс инстанциировать.
- Абстрактная фабрика (Abstract Factory): предоставляет интерфейс для создания семейств связанных или взаимозависимых объектов без указания их конкретных классов.
- Одиночка (Singleton): гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
2. Структурные шаблоны:
- Декоратор (Decorator): динамически прикрепляет дополнительное поведение к объекту.
- Адаптер (Adapter): преобразует интерфейс одного класса в интерфейс другого, чтобы они могли работать вместе.
- Компоновщик (Composite): объединяет группы объектов в древовидную структуру, позволяя им обрабатываться так же, как и отдельные объекты.
3. Поведенческие шаблоны:
- Наблюдатель (Observer): определяет зависимость "один-ко-многим" между объектами, чтобы при изменении состояния одного объекта все зависящие от него объекты были уведомлены и обновлены автоматически.
- Стратегия (Strategy): описывает семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Позволяет изменять алгоритм независимо от клиентов, которые его используют.
- Команда (Command): инкапсулирует запрос в виде объекта, позволяя параметризовать клиента с разными запросами.
Конечно, это лишь некоторые из шаблонов GoF
#вопросы_с_собеседований
Шаблоны GoF (Gang of Four) - это набор паттернов проектирования, описанных в книге "Design Patterns: Elements of Reusable Object-Oriented Software" авторов Эриха Гаммы, Ричарда Хелма, Ральфа Джонсона и Джона Влиссидеса.
В PHP многие шаблоны GoF также могут быть использованы для решения различных задач. Некоторые из них:
1. Порождающие шаблоны:
- Фабричный метод (Factory Method): определяет интерфейс для создания объектов, но позволяет подклассам решать, какой класс инстанциировать.
- Абстрактная фабрика (Abstract Factory): предоставляет интерфейс для создания семейств связанных или взаимозависимых объектов без указания их конкретных классов.
- Одиночка (Singleton): гарантирует, что у класса есть только один экземпляр, и предоставляет глобальную точку доступа к этому экземпляру.
2. Структурные шаблоны:
- Декоратор (Decorator): динамически прикрепляет дополнительное поведение к объекту.
- Адаптер (Adapter): преобразует интерфейс одного класса в интерфейс другого, чтобы они могли работать вместе.
- Компоновщик (Composite): объединяет группы объектов в древовидную структуру, позволяя им обрабатываться так же, как и отдельные объекты.
3. Поведенческие шаблоны:
- Наблюдатель (Observer): определяет зависимость "один-ко-многим" между объектами, чтобы при изменении состояния одного объекта все зависящие от него объекты были уведомлены и обновлены автоматически.
- Стратегия (Strategy): описывает семейство алгоритмов, инкапсулирует каждый из них и делает их взаимозаменяемыми. Позволяет изменять алгоритм независимо от клиентов, которые его используют.
- Команда (Command): инкапсулирует запрос в виде объекта, позволяя параметризовать клиента с разными запросами.
Конечно, это лишь некоторые из шаблонов GoF
#вопросы_с_собеседований
❤14👍9🍌1
Проверка заголовков ответа HTTP без загрузки тела с помощью Guzzle
Статья описывает технику, которая позволяет инспектировать HTTP заголовки ответа без необходимости загрузки тела ответа с использованием библиотеки Guzzle в PHP.
Статья описывает технику, которая позволяет инспектировать HTTP заголовки ответа без необходимости загрузки тела ответа с использованием библиотеки Guzzle в PHP.
chriswhite.is
Inspecting HTTP Response Headers Without Downloading Body with Guzzle
Just random stuff.
❤9
🔍 ТОП-12 джоб-сайтов: где программисту разместить резюме и найти работу
Рассказываем про мир job-сайтов: где программисту опубликовать резюме, чтобы быстрее найти работу в IT.
Рассказываем про мир job-сайтов: где программисту опубликовать резюме, чтобы быстрее найти работу в IT.
❤9🤔1
Data forget helper
Laravel включает новую служебную функцию data_forget, которая позволяет вам удалять ключи из массива или объекта, используя «точечную» нотацию, и включена, начиная с Laravel v10.15.
Laravel включает новую служебную функцию data_forget, которая позволяет вам удалять ключи из массива или объекта, используя «точечную» нотацию, и включена, начиная с Laravel v10.15.
Laravel News
Need to remove keys from an array or object? Use the data forget helper - Laravel News
Laravel has a utility function called data_forget that allows you to remove keys from an array or object using "dot" notation.
❤18🍌1
Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь
Подробная статья о том, как работает память и управление ей в PHP.
Подробная статья о том, как работает память и управление ей в PHP.
Хабр
Управление памятью в PHP. Сборка мусора, слабые ссылки и прочая челядь
Содержание Введенние. Zval. Циклические ссылки. Сборщик мусора. Алгоритм работы сборщика мусора. Смотрим глазами. Слабые ссылки. Бонус-трэк: WeakMap. Заключение. Введенние В PHP память для всех наших...
👍16❤6🔥1