ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ ΠΏΡΠ½ΠΈΠΊΠ° | PHP, Laravel, Symfony, CodeIgniter
ΠΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΡ ΠΏΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅. ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @proglib_adv Π£ΡΠΈΡΡΡΡ Ρ Π½Π°Ρ: clc.to/M561SQ ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: @proglibrary_feeedback_bot Π ΠΠ: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Show moreπ Analytical overview of Telegram channel ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ ΠΏΡΠ½ΠΈΠΊΠ° | PHP, Laravel, Symfony, CodeIgniter
Channel ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ ΠΏΡΠ½ΠΈΠΊΠ° | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) in the Russian language segment is an active participant. Currently, the community unites 10 517 subscribers, ranking 11 315 in the Technologies & Applications category and 60 496 in the Russia region.
π Audience metrics and dynamics
Since its creation on Π½Π΅Π²ΡΠ΄ΠΎΠΌΠΎ, the project has demonstrated rapid growth, gathering an audience of 10 517 subscribers.
According to the latest data from 28 August, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -65 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 19.22%. Within the first 24 hours after publication, content typically collects 9.53% reactions from the total number of subscribers.
- Post reach: On average, each post receives 2 022 views. Within the first day, a publication typically gains 1 002 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 14.
- Thematic interests: Content is focused on key topics such as php, laravel, ΠΏΡ ΠΏΡΠ½ΠΈΠΊΠ°, artisan, api.
π Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
βΠΡΠ΅ ΡΠ°ΠΌΠΎΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ΅ Π΄Π»Ρ ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ° Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ°Π½Π°Π»Π΅.
ΠΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠ΅: @proglib_adv
Π£ΡΠΈΡΡΡΡ Ρ Π½Π°Ρ: clc.to/M561SQ
ΠΠ»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΉ ΡΠ²ΡΠ·ΠΈ: @proglibrary_feeedback_bot
Π ΠΠ: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68bβ
Thanks to the high frequency of updates (latest data received on 29 August, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
@env_required() ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΡΠ΅Π΄Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π° ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ null. ΠΠ½Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ
ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΡΡΠ΅Π΄Ρ.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π° @env_required() ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΡΠ΅Π΄Ρ APP_KEY. ΠΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, Π±ΡΠ΄Π΅Ρ Π²ΡΠ±ΡΠΎΡΠ΅Π½ΠΎ ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°
#vardumppublic/index.php β ΡΠΎΡΠΊΠ° Π²Ρ
ΠΎΠ΄Π°, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Π²ΡΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ.
bootstrap/app.php β ΡΠΎΠ·Π΄Π°ΡΡΡΡ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π³ΡΡΠΆΠ°Π΅ΡΡΡ ΡΠ΄ΡΠΎ (Kernel).
Service Providers β ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ: ΠΠ, ΠΊΡΡ, ΠΌΠ°ΡΡΡΡΡΠΈΠ·Π°ΡΠΈΡ, Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ.
Middleware β ΡΠΈΠ»ΡΡΡΡ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠ΅ Π·Π°ΠΏΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ).
Routing ΠΈ Controller β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΌΠ΅ΡΠΎΠ΄ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π·Π°ΠΏΡΠΎΡ.
Models ΠΈ Database β ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΠ.
View ΠΈ Response β Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΡΡΡΡ Π² HTML-ΠΎΡΠ²Π΅Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ²ΡΠΎΡΡ ΠΎΠ±ΡΡΡΠ½ΡΡΡ ΡΡΠΎ Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΡΠ΅ΡΡΠΎΡΠ°Π½Π°:
Π²Ρ
ΠΎΠ΄ β index.php,
ΠΊΡΡ
Π½Ρ β app.php,
ΠΏΠΎΠ²Π°Ρ β ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ,
Π±Π»ΡΠ΄ΠΎ β ΠΎΡΠ²Π΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΡΠΈΠΊΠ»Π° Laravel ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π»ΡΡΡΠ΅ Π΄Π΅Π±Π°ΠΆΠΈΡΡ, ΠΏΠΈΡΠ°ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΈ ΠΎΡΠΎΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ ΠΏΡΠ΅Π²ΡΠ°ΡΠ°Π΅Ρ ΠΎΠ±ΡΡΠ½ΡΠΉ HTTP-Π·Π°ΠΏΡΠΎΡ Π² Π³ΠΎΡΠΎΠ²ΡΡ HTML-ΡΡΡΠ°Π½ΠΈΡΡ.
π Π§ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°
#php_Π°Π·Π±ΡΠΊΠ°composer require --dev friendsofphp/php-cs-fixer
ΠΠ°ΡΡΡΠΎΠΉ IDE (PhpStorm, VS Code) ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π»ΡΡ ΠΏΡΠΈ ΡΠΎΡ
ΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠ°ΠΉΠ»Π°.
./vendor/bin/php-cs-fixer fix
β‘οΈ ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ ΠΊΡΡΡΠΎ:
β
ΠΡΠ΅ ΡΠ°ΠΉΠ»Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΡ Π±Π΅Π· ΡΡΡΠ½ΠΎΠΉ ΠΏΡΠ°Π²ΠΊΠΈ
β
ΠΠΊΠΎΠ½ΠΎΠΌΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΡΠ΅Π²ΡΡ ΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΠ»Ρ
β
Π§ΠΈΡΡΡΠΉ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΡΠΉ ΠΊΠΎΠ΄ Π΄Π»Ρ Π²ΡΠ΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
π‘ Π‘ΠΎΠ²Π΅Ρ: ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ pre-commit hook ΡΠ΅ΡΠ΅Π· Composer, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ ΠΊΠΎΠΌΠΌΠΈΡΠΎΠΌ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π»ΡΡ:
"scripts": {
"pre-commit": "php-cs-fixer fix"
}
Π’Π΅ΠΏΠ΅ΡΡ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠΎΡ
ΡΠ°Π½ΡΠ½Π½Π°Ρ ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠ΄Π° ΠΈ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΊΠΎΠΌΠΌΠΈΡ Π±ΡΠ΄ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌ Π±Π΅Π· Π»ΠΈΡΠ½Π΅ΠΉ ΡΠ°Π±ΠΎΡΡ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°$a = 12345678901234567890;
$b = $a + 1;
var_dump($a === $b);
π ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄: $b = $a + 1 β Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
ΡΠΈΡΠ»Π°, Π·Π½Π°ΡΠΈΡ === Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Π΅ΡΠ½ΡΡΡ false.
ΠΠΎ PHP Π²ΡΠ²Π΅Π΄Π΅Ρ true β Π·Π½Π°ΡΠ΅Π½ΠΈΡ Β«ΡΠ»ΠΈΠΏΠ°ΡΡΡΡΒ».
π§ ΠΠΎΡΠ΅ΠΌΡ ΡΠ°ΠΊ?
Π PHP Π΅ΡΡΡ Π΄Π²Π° ΡΠΈΡΠ»ΠΎΠ²ΡΡ
ΡΠΈΠΏΠ°: int ΠΈ float (double, ΠΏΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΡ IEEE-754).
ΠΡΠ»ΠΈ Π² ΠΊΠΎΠ΄Π΅ ΡΡΠΎΠΈΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠ΅Π»ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ int (Π½Π° 64-Π±ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ ΠΎΠΊΠΎΠ»ΠΎ Β±9.22e18), PHP Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ°ΡΡΠΈΡ Π΅Π³ΠΎ ΠΊΠ°ΠΊ float.
Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΎΠ±Π° Π»ΠΈΡΠ΅ΡΠ°Π»Π° ΡΠ»ΠΈΡΠΊΠΎΠΌ Π±ΠΎΠ»ΡΡΠΈΠ΅ β ΠΎΠ±Π° ΠΏΡΠ΅Π²ΡΠ°ΡΠ°ΡΡΡΡ Π² float Π΅ΡΡ Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠ°Π·Π±ΠΎΡΠ° ΠΊΠΎΠ΄Π°.
float Ρ
ΡΠ°Π½ΠΈΡ ΡΠΈΡΠ»Π° Ρ ~15β17 Π·Π½Π°ΡΠΈΠΌΡΠΌΠΈ ΡΠΈΡΡΠ°ΠΌΠΈ. ΠΠ° Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
ΠΏΠΎΡΡΠ΄ΠΊΠ° 10ΒΉβΉ ΡΠ°Π³ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΡΠΌΠ΅ΠΆΠ½ΡΠΌΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ (ULP) ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΊΠΎΠ»ΠΎ 2048!
Π Π°Π·Π½ΠΈΡΠ° Π² 1 ΠΌΠ΅ΠΆΠ΄Ρ $a ΠΈ $a + 1 ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ°Π»Π°, ΡΡΠΎΠ±Ρ Π±ΡΡΡ Β«Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉΒ» Π² ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠΈ float. Π ΠΈΡΠΎΠ³Π΅ ΠΎΠ±Π° ΡΠΈΡΠ»Π° Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
ΠΡΠΈ ΡΡΡΠΎΠ³ΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ === PHP ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ ΡΠΈΠΏ ΠΈ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π΅ Π΄Π²ΠΎΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ β ΠΈ ΠΎΠ½ΠΈ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ β true.
β οΈ ΠΠ΄Π΅ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ΄Π²Π΅ΡΡΠΈ Π² ΠΆΠΈΠ·Π½ΠΈ
ID ΠΈΠ· ΠΠ ΠΈΠ»ΠΈ API
ΠΠ»ΠΈΠ½Π½ΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ (BIGINT) ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² PHP ΠΊΠ°ΠΊ ΡΠΈΡΠ»Π° β ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠΎΡΠ½ΠΎΡΡΠΈ.
json_decode
ΠΠ΅Π· JSON_BIGINT_AS_STRING Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠΈΡΠ»Π° ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² float.
ΠΠ»ΡΡΠΈ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ²
ΠΡΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΠΊΠ°ΠΊ ΠΊΠ»ΡΡ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ float, ΠΏΠΎΡΠΎΠΌ ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½ ΠΊ int, ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡΠ΅ΠΉ Β«ΡΠ»ΠΈΠΏΠ½ΡΡΡΡΒ» Π² ΠΎΠ΄ΠΈΠ½.
Π‘ΡΠ°Π²Π½Π΅Π½ΠΈΡ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
ΠΠ²Π° ΡΠ°Π·Π½ΡΡ
ΡΠΈΡΠ»Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΡΠΈΠ·Π½Π°Π½Ρ ΡΠ°Π²Π½ΡΠΌΠΈ, ΡΡΠΎ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ.
β
ΠΠ°ΠΊ Π·Π°ΡΠΈΡΠΈΡΡΡΡ
ΠΠ΅ΡΠ΅Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΊΠΈ, Π° Π½Π΅ ΡΠΈΡΠ»Π°.
ΠΡΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ JSON ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅:
json_decode($json, false, 512, JSON_BIGINT_AS_STRING);
ΠΠ»Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ β bcmath, gmp ΠΈΠ»ΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈ:
bccomp("12345678901234567890", "12345678901234567899"); // -1
bcadd("99999999999999999999", "1"); // "100000000000000000000"
ΠΠ°Π»ΠΈΠ΄ΠΈΡΡΠΉΡΠ΅ Π²Ρ
ΠΎΠ΄Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅: Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΠ΅ ΡΡΡΠΎΠΊΡ ΠΊ int, Π΅ΡΠ»ΠΈ ΠΎΠ½Π° Π²Π½Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎΠ³ΠΎ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°.
ΠΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π΅ (JavaScript) ΡΠΎΠΆΠ΅ ΠΎΡΡΠΎΡΠΎΠΆΠ½ΠΎ: Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π°Ρ Π·ΠΎΠ½Π° β Π΄ΠΎ Β±(2^53 β 1). ΠΡΡ, ΡΡΠΎ Π±ΠΎΠ»ΡΡΠ΅ β ΠΎΡΠΏΡΠ°Π²Π»ΡΠΉΡΠ΅ ΡΡΡΠΎΠΊΠΎΠΉ.
π‘ PHP Β«ΡΠ»ΠΈΠΏΠ°Π΅ΡΒ» ΠΎΡΠ΅Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΡΠ΅Π»ΡΠ΅ ΡΠΈΡΠ»Π° Π² float, ΠΈ Π½Π° Π±ΠΎΠ»ΡΡΠΈΡ
Π·Π½Π°ΡΠ΅Π½ΠΈΡΡ
ΡΠ°Π³ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΈΡΠ»Π°ΠΌΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ Π±ΠΎΠ»ΡΡΠΈΠΌ. ΠΠΎΡΡΠΎΠΌΡ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
Π»ΠΈΡΠ΅ΡΠ°Π»Π° ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡΡΡ Π² ΠΎΠ΄Π½ΠΎ ΠΈ ΡΠΎ ΠΆΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅.
π Π₯Π°Π±Ρ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°RefreshDatabase, Π΄Π°Π½Π½ΡΠ΅, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π² ΠΠ (ΡΠ΅ΡΠ΅Π· ΡΠ°Π±ΡΠΈΠΊΠΈ, ΡΠΈΠ΄Π΅ΡΡ ΠΈΠ»ΠΈ HTTP-Π·Π°ΠΏΡΠΎΡΡ), ΠΌΠΎΠ³ΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΡΠ°ΠΌΠΈ ΠΈ Π²ΡΠ·ΡΠ²Π°ΡΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ
Π·Π°ΠΏΡΡΠΊΠ°Ρ
.
ΠΠ²ΡΠΎΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ:
πΈ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ RefreshDatabase Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ Π΄Π»Ρ Π²ΡΠ΅Ρ
feature-ΡΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· tests/Pest.php;
πΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΊΠ°ΡΡ ΡΠ΅ΡΡΡ Π±Π΅Π· ΡΡΠΎΠ³ΠΎ ΡΡΠ΅ΠΉΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ grep, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ:
grep -rL 'RefreshDatabase' tests/Feature | xargs grep -l '::factory('
β ΡΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π½Π°Ρ
ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΡΡ, Π³Π΄Π΅ Π½Π΅Ρ ΡΡΠ΅ΠΉΡΠ°, Π½ΠΎ Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±ΡΠΈΠΊ.
πΈΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΠΏΠΎΠΈΡΠΊ ΠΈ Π΄Π°ΠΆΠ΅ Π²ΡΡΡΠΎΠΈΡΡ ΡΠ°ΠΊΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π² GitHub Actions, ΡΡΠΎΠ±Ρ CI ΠΏΠ°Π΄Π°Π», Π΅ΡΠ»ΠΈ Π² PR Π΅ΡΡΡ ΡΠ΅ΡΡΡ Π±Π΅Π· ΡΡΠ΅ΠΉΡΠ°, Π½ΠΎ Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡΠΈΠΌΠΈ ΠΠ.
Π ΠΊΠΎΠ½ΡΠ΅ ΡΠΎΠ²Π΅Ρ:
πΉ Π²ΡΠ΅Π³Π΄Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ RefreshDatabase, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ Π±ΡΡΡΡΠ΅Π΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½Π΅Π΅ Π΄ΡΡΠ³ΠΈΡ
ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΎΡΠΈΡΡΠΊΠΈ ΠΠ;
πΉ ΠΏΡΠ΅Π΄ΠΏΠΎΡΠΈΡΠ°ΡΡ ΡΠ°Π±ΡΠΈΠΊΠΈ ΠΈ ΡΠΈΠ΄Π΅ΡΡ ΡΡΡΠ½ΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ;
πΉ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ, ΡΡΠΎ HTTP-ΡΠ΅ΡΡΡ, ΡΠΎΠ·Π΄Π°ΡΡΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ, ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΡΡΠΎΡ ΡΡΠ΅ΠΉΡ.
π Π§ΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΡ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°composer require composer/xdebug-handler
π¦ Π‘ΡΡΠ»ΠΊΠ° Π½Π° ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ GitHub
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°
#ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡΒ«ΠΡΠ»ΠΈ Π²Π°Ρ ΠΠΈΡΡΠΈΠΊΡ ΡΠΎΡΠΌΠΎΠ·ΠΈΡ, Π° Laravel ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΠ· Π΄ΡΡΠ³ΠΎΠΉ Π²ΡΠ΅Π»Π΅Π½Π½ΠΎΠΉ β ΡΡΠΎ ΡΡΠ°ΡΡΡ Π΄Π»Ρ Π²Π°Ρ.Β»ΠΠΎΠΌΠ°Π½Π΄Π° KISLOROD Π΄ΠΎΠΊΠ°Π·Π°Π»Π°, ΡΡΠΎ ΠΌΠΈΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΠΈΡΡ π ΠΠ΅Π· ΡΠΎΡΠΊΠΎΠ², Π±ΠΎΠ»ΠΈ SEO-ΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΉ 1Π‘. π§© Π§ΡΠΎ ΡΠ΄Π΅Π»Π°Π»ΠΈ: β Laravel ΡΡΠ°Π» Β«ΡΠΎΡΠ΅Π΄ΠΎΠΌΒ» ΠΠΈΡΡΠΈΠΊΡΠ°: Π±Π΅ΡΠ΅Ρ Π½Π° ΡΠ΅Π±Ρ API, ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΈ, ΡΠΈΠ»ΡΡΡΡ, ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ. β ΠΠΈΡΡΠΈΠΊΡ ΠΎΡΡΠ°Π»ΡΡ Π°Π΄ΠΌΠΈΠ½ΠΊΠΎΠΉ ΠΈ ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠΈΠ΅ΠΉ. β ΠΠ²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ ΡΠ΅ΡΠ΅Π· JWT, ΡΠΎΠ±ΡΡΠΈΡ ΡΠ΅ΡΠ΅Π· Redis Streams, Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΡ ΡΠ΅ΡΠ΅Π· OpenTelemetry ΠΈ Prometheus. π Π Π΅Π·ΡΠ»ΡΡΠ°Ρ: ΠΠ°ΡΠ°Π»ΠΎΠ³ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° 150 ΠΌΡ, ΠΊΠΎΡΠ·ΠΈΠ½Π° β Π·Π° 120 ΠΌΡ, Π·Π°ΠΊΠ°Π·Ρ Π»Π΅ΡΡΡ Π±Π΅Π· ΡΠΎΡΠΌΠΎΠ·ΠΎΠ². Π ΡΡΠΎΠ½Ρ ΡΠ΅ΠΏΠ΅ΡΡ Ρ ΠΎΠ΄ΠΈΡ Π² ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΡΠΉ API ΠΈ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅Ρ ΠΎ ΠΠΈΡΡΠΈΠΊΡΠ΅. π‘ ΠΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π²Π°ΠΆΠ½ΠΎ: ΠΠΎΠΆΠ½ΠΎ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½Π½ΠΎ ΠΌΠΈΠ³ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΌΠΎΠ½ΠΎΠ»ΠΈΡΠ° ΠΊ headless-Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ β Π±Π΅Π· Π±ΠΎΠ»ΠΈ ΠΈ Π½ΠΎΡΠ½ΡΡ Π΄Π΅ΠΏΠ»ΠΎΠ΅Π². π ΠΠΎΠ»Π½Π°Ρ ΡΡΠ°ΡΡΡ Π½Π° Π₯Π°Π±ΡΠ΅ ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ ΠΏΡΠ½ΠΈΠΊΠ°
containsOneItem(), ΠΊΠΎΡΠΎΡΡΠΉ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅? π
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡ
ΠΏΡΠ½ΠΈΠΊΠ°
#vardump