TGViewer
Channel Public Channel
Bitrix24 Apps & BITRIX24-PHP-SDK

Bitrix24 Apps & BITRIX24-PHP-SDK

@bitrix24phpsdk

Разработка приложений для Bitrix24 на базе BITRIX24-PHP-SDK
Subscribers
153
Photos
11
Videos
8
Links
54

Showing posts older than #59 · Back to latest

Older Posts 20 shown
Post #56 712
BITRIX24-PHP-SDK-EXAMPLES-05

tl;dr;
— Composer License Checker
— PHP Coding Standards Fixer
— PHPStan
— rector
— Composer dependency analyser

📺 https://youtu.be/g3hScZhUrcM
  • 🔥 3
Post #55 210

Forwarded from Пыхник’26 онлайн | 28 сентября – 2 октября

Принимаем заявки на доклады!

19 сентября в Москве в Конгресс-центре ЦМТ пройдёт новая PHP-конференция для всех.

👥 400 участников • 🔢 4 зала • 🎙 28 докладов

Скоро откроется сайт конференции, где можно будет приобрести билет по стартовой цене.

А пока — подай доклад! Спикер участвует бесплатно, готовится вместе с программным комитетом и получает ценный опыт публичных выступлений.

Ориентировочный список тем:
• async и неблокирующий I/O;
• статический анализ: Psalm, PHPStan, Rector;
• производительность и highload;
• архитектура: ES, DDD, CQRS, микросервисы;
• тестирование и бенчмаркинг;
• инфраструктура: очереди, стримы, базы данных;
• DevOps: CI/CD, Docker, Kubernetes;
• AI/ML;
• фреймворки: Yii, Symfony, Laravel;
• CMS: WordPress, Drupal, Bitrix;
• IDE и плагины;
• open source: опыт, ошибки, лучшие практики.

Заявку, а лучше несколько, можно подать через Хобота до 1 июля. Мы свяжемся с тобой в течение недели и дадим обратную связь.

До встречи на Пых.конф’25!
Telegram Хобот Бот канала Пых @phpyh.
  • 🔥 4
  • 👍 1
Post #54 211
Добавляем в календари и подаем свои доклады!
  • 👍 2
Post #49 692
🚀 b24phpsdk 1.3.0

➕Добавлено
— поддержка PHP 8.4
— метод Services\Main\Service::guardValidateCurrentAuthToken проверяющий, что идет работа с валидным OAUTH сервером.
— скоуп entity
— сервис Services\Entity\Service\Item
— сервис Services\Entity\Service\Entity
— скоупы humanresources.hcmlink и sign.b2e
— метод Core\Credentials\Scope::contains
— метод Core\Credentials\Scope::getAvailableScopeCodes
— сервис Services\CRM\VatRates\Service\Vat
— сервис Services\CRM\Contact\Service\ContactCompany
— сервис Services\CRM\Requisites\Service\Requisite
— сервис Services\CRM\Requisites\Service\RequisitePreset
— сервис Services\User\Service\Batch
— сервис Services\AI\Engine\Service\Engine
— класс Core\Exceptions\LogicException
DX: консольная команда b24-dev:show-sdk-coverage-statistics
DX: класс Bitrix24\SDK\Deprecations\DeprecatedMethods со списком методов, которые помечены как депрекейтед
DX: все консольные команды исполняются в докер-контейнере php-cli
DX: добавлено кеширование конфига phpstan
DX: добавлена статья «How to Contribute to Bitrix24 PHP SDK»

🪚Изменено
— добавлеен nullable аргумент $scope в методе Bitrix24\SDK\Attributes\Services::getSupportedInSdkApiMethods,
— изменения в методе Application\Contracts\Bitrix24Accounts\Entity::updateApplicationVersion
— ошибки в Bitrix24AccountInterfaceTest, изменены сигнатуры вызовов

🧰 Исправлено
— ошибка в Bitrix24\SDK\Core\Batch для методов: user.get, entity.item.get, entity.item.update
— ошибка в Bitrix24\SDK\Core\ApiClient
— ошибки в ApplicationInstallationRepositoryInterfaceTest

🔐Безопасность
- Добавлен метод Services\Main\Service::guardValidateCurrentAuthToken для проверки авторизационного токена путем вызова метода app.info на OAUTH сервере вендора. Можно использовать для проверки входящих токенов из плейсментов и событий для коробочных инсталляций.

➖Удалено
❗примеры выносятся в отдельный репозиторий → bitrix24/b24sdk-examples

📈 Статистика

Bitrix24 API-methods count: 1146
Supported in bitrix24-php-sdk methods count: 227
Coverage percentage: 19.81% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 29


👋 Новые контрибьюторы
— wmnnd made their first contribution in https://github.com/bitrix24/b24phpsdk/pull/118
— sallee113 made their first contribution in https://github.com/bitrix24/b24phpsdk/pull/146

https://github.com/bitrix24/b24phpsdk/releases/tag/1.3.0
GitHub task.commentitem.add also requires strict argument order by wmnnd · Pull Request #118 · bitrix24/b24phpsdk Hey there, I was just running into the same issue as described in #112. I tried the current dev version but it was missing task.commentitem.add in the list of functions that require strict argument...
  • 👍 7
  • 🔥 1
Post #48 342
Current mood
  • 👍 4
Post #47 304

Forwarded from Сергей Предводителев

🌿 Про статические анализаторы и входящие данные в библиотеках

Использование статических анализаторов существенно повышает качество кода, но при использовании их в библиотеках нужно учитывать один важный нюанс — нельзя доверять типу входящих данных.

В приложении мы можем использовать расширенную типизацию (в случае PHP и Psalm — с помощью аннотаций) для параметров функций, методов, конструкторов классов и быть уверенными, что параметры будут ожидаемых типов (конечно же если не забываем запускать статический анализ, а ещё лучше настроили его в CI).

Например, у нас есть класс, который в конструкторе ожидает массив из объектов и мы указываем это в аннотации:

final class Test {
/**
* @param object[] $objects
*/
public function __construct(array $objects) {
// ...
}
}

При попытке создать объект с аргументами, которые соответствуют типизации языка, но не соответствуют расширенной типизации (например, new Test([1, 2]);), анализатор выдаст ошибку.

Но если тот же самый класс мы решим вынести в библиотеку, то у нас сразу исчезает уверенность, что параметр $objects будет именно массивом объектов. Разработчики, использующие нашу библиотеку:

• могут не использовать статические анализаторы,
• могут использовать другой анализатор.

А это значит, что ошибка будет обнаружена, возможно, не сразу и совсем в другом месте, так как код библиотеки будет работать неожиданным образом.

❗️В библиотеках все входящие параметры нужно проверять и не полагаться на статический анализ.
  • 🔥 1
  • 🤯 1
Post #46 265
Да, всё так, напоминание от Сергея
Post #45 502
🚀 b24phpsdk 1.2.0

Ключевые изменения
— добавлена поддержка компаний CRM\Company\Service и связанных сущностей CRM\Company\Service\CompanyUserfield, CRM\Company\Service\CompanyCompanyContact и т.д.
— добавлена поддержка перечислений CRM\Enum\Service\Enum
— в CI добавлена проверка зависимостей на соответствие лиценизиям MIT, BSD-3-Clause, Apache.
— исправлено 100500 ошибок в аннотациях типов и возвращаемых результатах (простите, без этого никак), в интеграционные тесты добавлены специальные методы:
assertBitrix24AllResultItemFieldsAnnotated - проверяет, что в phpdoc аннотации перечислены все поля возвращаемые методом *.fields
assertBitrix24AllResultItemFieldsHasValidTypeAnnotation - проверяет, что тип из phpdoc-аннотации правильно маппится на тип уже на уровне PHP.
Теперь следующие релизы sdk будут тестироваться и на такие вот вещи и это потенциально снизит человеческий фактор, когда вендор добавил поле, а ты забыл его аннотировать.

Огромное спасибо Валентину Удальцову, автору канала https://t.me/phpyh за библиотеку typhoon/reflection вся эта магия работает поверх неё. Следующий шаг — сделать автоматический вывод возвращаемых типов на основании данных из аннотации, а не как сейчас — по символьному коду поля 🫠.
— потихоньку заносим PhpCsFixer
— много минорных правок

Статистика по покрытию

Bitrix24 API-methods count: 1135
Supported in bitrix24-php-sdk methods count: 191
Coverage percentage: 16.83% 🚀
Supported in bitrix24-php-sdk methods with batch wrapper count: 22

https://github.com/bitrix24/b24phpsdk/releases/tag/1.2.0
  • 🔥 9
Post #44 419
Можем радоваться!

Release manager Saki Takamachi тегнула новую версию PHP — 8.4.0

https://github.com/php/php-src/releases/tag/php-8.4.0

- Страница релиза - есть
- Первый фикс PHP 8.4.1 есть ✅
- Хорошее настроение - есть ✅

По мотивам поста из канала https://t.me/flyphp/

Что изменится для нас:
- bitrix24-php-sdk начнём тестировать и под эту версию ☕️
- подумаем, а что из фич 8.4 сделает нас счастливыми

https://t.me/flyphp/83 (оригинальный пост)
  • 🔥 2
Post #43 279
я: дорогая, мне нужно подумать и решить сложную задачу на пару часов
тоже я: *выбираю шрифт для ASCII-арт заставки в течении 40 минут*
  • 🔥 10
Post #40 595
Привет, вот и пришёл момент, когда репозиторий https://github.com/bitrix24/b24phpsdk/releases уходит вперёд.

🥲 Через некоторое время я архивирую свой репозиторий и добавлю уведомление, что библиотека переехала к вендору 🚲

Сегодня выпущен релиз библиотеки 1.1.0, в нём достаточно много улучшений направленных на повышение удобства работы новых разработчиков.
Часть фабричных методов обзавелась дефолтными значениями, что ещё больше упростило код.


declare(strict_types=1);

use Bitrix24\SDK\Services\ServiceBuilderFactory;

require_once 'vendor/autoload.php';

// init bitrix24-php-sdk service from webhook
$b24Service = ServiceBuilderFactory::createServiceBuilderFromWebhook('INSERT_HERE_YOUR_WEBHOOK_URL');

// call some method
var_dump($b24Service->getMainScope()->main()->getApplicationInfo()->applicationInfo());

// call core for method in not implemented service
var_dump($b24Service->core->call('user.current'));

Добавлены примеры, они все лежат в папке examples, по хорошему, её надо выносить в отдельный репозиторий. Итак, сейчас уже есть:
- работа с вебхуком /examples/webhook
- локальное приложение без хранения токена /examples/local-app
- локальное приложение с хранением токена examples/local-app-with-token-storage
- регистрация плейсмента /examples/local-app-placement

Сделаны фабрики событий приходящих от Битрикс24, теперь можно инстанцировать события одной строчкой.

// get application_token for check event security signature
// see https://apidocs.bitrix24.com/api-reference/events/safe-event-handlers.html
// on first lifecycle event OnApplicationInstall application token is null and file with auth data doesn't exists
// we save application_token and all next events will be validated security signature
$event = RemoteEventsFabric::init(self::getLog())->createEvent($incomingRequest, $applicationToken);
GitHub Releases · bitrix24/b24phpsdk Bitrix24 PHP SDK for REST API. Contribute to bitrix24/b24phpsdk development by creating an account on GitHub.
  • 👍 5
  • 🔥 4
  • 🤯 2
Post #39 397

Forwarded from Serg Vostrikov

Коллеги, есть важная новость.

Давно зарекоменовавший себя PHP SDK от @mesilov теперь становится официальным SDK для разработки на PHP.

Актуальная версия доступна в официальном репозитории https://github.com/bitrix24/b24phpsdk

Для тех, кто еще не использовал библиотеку, можно перечислить основные преимущества:

1. Красотища. Ну, то есть, code completion в IDE, причем даже на уровне параметров методов. Это не избавляет от необходимости почитать документацию, но это точно защищает от глупых ошибок при формировании запросов. И ускоряет разработку

2. Эффективная работа со списочными методами. Мы все знаем, что это не простая штука - вытащить стотыщпяссот записей. В SDK не просто есть поддержка batch (она и в CRest как бы есть), там есть правильное использование возможностей языка, что позволяет значительно экономить память, что для веб-приложений может являться критичным.

3. Типизированные параметры и данные. Если метод работает с полем типа Дата, то это прямо дата в терминах PHP, а не просто строка с особыми циферками.

4. Подкапотные сценарии для тиражных приложений вроде автообновления токенов. Причем, поскольку это все же SDK, а не заготовка приложения, вы сами решаете, что с токенами делать и где хранить. Это несколько повышает порог входа для тех, кто вообще не в теме, но мы его закроем готовыми примерами How to

И т.д. Модно, грамотно, молодежно (зачеркнуто) по-стариковски. То есть, проверено реальным опытом в сложных и высоконагрузочных проектах.

Из нашей статистики могу сказать, что этот SDK является наиболее массовой библиотекой после CRest, но теперь мы будем стараться, чтобы при разработке приложений и локальных интеграций разработчики все же использовали новый SDK. Он просто лучше и надежнее.

Репа открыта, ждем issues, pull-requests, примеров - планов много.
GitHub GitHub - bitrix24/b24phpsdk: Bitrix24 PHP SDK for REST API Bitrix24 PHP SDK for REST API. Contribute to bitrix24/b24phpsdk development by creating an account on GitHub.
  • 🔥 8
  • 👍 1
Post #38 221
Good news, everyone!
Post #37
Channel name was changed to «Bitrix24 Apps & BITRIX24-PHP-SDK»
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →