Вступ

ΠœΠΎΠ΄ΡƒΠ»ΡŒ дозволяє Π·Π°Π²Π°Π½Ρ‚Π°ΠΆΡƒΠ²Π°Ρ‚ΠΈ Π·Π°Π³Π°Π»ΡŒΠ½Ρ– (shared) Π±Ρ–Π±Π»Ρ–ΠΎΡ‚Π΅ΠΊΠΈ (.DLL Π°Π±ΠΎ .so), Π²ΠΈΠΊΠ»ΠΈΠΊΠ°Ρ‚ΠΈ C-Ρ„ΡƒΠ½ΠΊΡ†Ρ–Ρ— Ρ‚Π° ΠΎΡ‚Ρ€ΠΈΠΌΡƒΠ²Π°Ρ‚ΠΈ доступ Ρ–Π· структур ΠΌΠΎΠ²ΠΈ C Π· PHP Π±Π΅Π· нСобхідності Π³Π»ΠΈΠ±ΠΎΠΊΠΎ Π²ΠΈΠ²Ρ‡Π°Ρ‚ΠΈ API ΠΌΠΎΠ΄ΡƒΠ»Ρ–Π² Zend Ρ– ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŒΠΎΡ—, "ΠΏΡ€ΠΎΠΌΡ–ΠΆΠ½ΠΎΡ—" ΠΌΠΎΠ²ΠΈ. ΠŸΡƒΠ±Π»Ρ–Ρ‡Π½ΠΈΠΉ API Ρ€Π΅Π°Π»Ρ–Π·ΠΎΠ²Π°Π½ΠΈΠΉ як Ρ”Π΄ΠΈΠ½ΠΈΠΉ клас FFI Π· дСяким Π½Π°Π±ΠΎΡ€ΠΎΠΌ статичних ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ–Π² (дСякі ΠΌΠΎΠΆΡƒΡ‚ΡŒ викликатися Π΄ΠΈΠ½Π°ΠΌΡ–Ρ‡Π½ΠΎ) Ρ– ΠΏΠ΅Ρ€Π΅Π²ΠΈΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΌΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ ΠΎΠ±'Ρ”ΠΊΡ‚Π°, Ρ‰ΠΎ дозволяє взаємодіяти Π· Π΄Π°Π½ΠΈΠΌΠΈ Π—.

ЗастСрСТСння

ΠœΠΎΠ΄ΡƒΠ»ΡŒ FFI Π΄ΠΎΡΠΈΡ‚ΡŒ Π½Π΅Π±Π΅Π·ΠΏΠ΅Ρ‡Π½ΠΈΠΉ, ΠΎΡΠΊΡ–Π»ΡŒΠΊΠΈ дозволяє взаємодіяти Ρ–Π· ΡΠΈΡΡ‚Π΅ΠΌΠΎΡŽ Π½Π° Π΄ΡƒΠΆΠ΅ Π½ΠΈΠ·ΡŒΠΊΠΎΠΌΡƒ Ρ€Ρ–Π²Π½Ρ–. ΠœΠΎΠ΄ΡƒΠ»ΡŒ FFI ΠΏΠΎΠ²ΠΈΠ½Π΅Π½ використовуватися Ρ‚Ρ–Π»ΡŒΠΊΠΈ Ρ€ΠΎΠ·Ρ€ΠΎΠ±Π½ΠΈΠΊΠ°ΠΌΠΈ, Π·Π½Π°ΠΉΠΎΠΌΠΈΠΌΠΈ Π· мовою Π‘ Ρ– Π²ΠΌΡ–ΡŽΡ‚ΡŒ використовувати ΠΉΠΎΠ³ΠΎ API. Для ΠΌΡ–Π½Ρ–ΠΌΡ–Π·Π°Ρ†Ρ–Ρ— Ρ€ΠΈΠ·ΠΈΠΊΡƒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅ Π±ΡƒΡ‚ΠΈ Π·Π°Π±ΠΎΡ€ΠΎΠ½Π΅Π½ΠΈΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΡŽ ffi.enableΠ² php.ini.

ЗауваТСння :

ΠœΠΎΠ΄ΡƒΠ»ΡŒ FFI Ρ€ΠΎΠ±ΠΈΡ‚ΡŒ класичний API ΠΌΠΎΠ΄ΡƒΠ»Ρ–Π² PHP застарілим; Π²Ρ–Π½ ΠΏΡ€ΠΈΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ для Π²Π·Π°Ρ”ΠΌΠΎΠ΄Ρ–Ρ— Π· функціями Ρ‚Π° структурами Π΄Π°Π½ΠΈΡ… C.

ΠŸΡ–Π΄ΠΊΠ°Π·ΠΊΠ°

Π—Π°Ρ€Π°Π· доступ Π΄ΠΎ структур Π΄Π°Π½ΠΈΡ… FFI ΠΏΡ€ΠΈΠ±Π»ΠΈΠ·Π½ΠΎ Π² 2 Ρ€Π°Π·ΠΈ ΠΏΠΎΠ²Ρ–Π»ΡŒΠ½Ρ–ΡˆΠΈΠΉ, Π½Ρ–ΠΆ доступ Π΄ΠΎ ΠΎΠ±'Ρ”ΠΊΡ‚Ρ–Π² Ρ– масивів PHP. Π’Π°ΠΊΠΈΠΌ Ρ‡ΠΈΠ½ΠΎΠΌ, Π½Π΅ΠΌΠ°Ρ” підстав використовувати FFI для прискорСння; ΠΎΠ΄Π½Π°ΠΊ ΠΉΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½Π° використовувати для скорочСння ΠΏΠ°ΠΌ'яті, Ρ‰ΠΎ ΡΠΏΠΎΠΆΠΈΠ²Π°Ρ”Ρ‚ΡŒΡΡ.