PHP Unconference Europe 2015

Introduction

Warning

This extension is EXPERIMENTAL. The behaviour of this extension including the names of its functions and any other documentation surrounding this extension may change without notice in a future release of PHP. This extension should be used at your own risk.

Bcompiler به چند دلیل نوشته شد:

  • کدگذاری تمام اسکریپت نرم‌افزارهای دارای مالکیت PHP
  • کدگذاری بعضی کلاس‌ها و/یا توابع در نرم‌افزارهای دارای مالکیت PHP
  • فعال‌سازی تولید نرم‌افزارهای php-gtk که برای مشتری‌های دسکتاپ بدون نیاز بهphp.exe هستند.
  • برای مطالعه عملی بودن تبدیل PHP به C
اولین این هدف‌ها با استفاده از توابع bcompiler_write_header()، bcompiler_write_file() و bcompiler_write_footer() به نتیجه رسید. فایل bytecode غیرفشرده یا ساده نوشته شوند. برای استفاده ازbytecode تولید شده شما براحتی آن را با استفاده از include و require اضافه می‌کنید.

دومین این اهداف با استفاده از توابع bcompiler_write_header()، bcompiler_write_class()، bcompiler_write_footer()، bcompiler_read()، و bcompiler_load() به نتیجه رسید. فایل bytecode می‌تواند به صورت غیرفشرده یا ساده نوشته شود. bcompiler_load() فایل bzip compressed bytecode را می‌خواند که 1/3 اندازه فایل اصلی است.

برای ساخت نوع فایل EXE bcompiler به همراه فایل تغییر یافته sapi یا نسخه PHP که به همراه کتابخانه مشترک کامپایل شده استفاده می‌شود. در این سناریو bcompiler bytecode فشرده را از انتهای فایل exe می‌خواند.

bcompiler عملکرد را به اندازه 30% به همراه bytecodes غیر فشرده افزایش می‌دهد. اما در نظر داشته باشید که bytecode غیرفشرده ۵ برابر بزرگتر از منبع کد اصلی می‌باشد . استفاده از فشرده‌سازیUsing bytecode فضای شما را ذخیره کرده اما غیرفشرده سازی زمان بیشتری از پارس منبع می‌خواهد. bcompiler بهینه‌سازی bytecode انجام نداده و در آینده می‌توان اضافه شود....

از نظر محافظت کد می‌توان گفت ساخت کد منبع غیرممکن به نظر می‌رسد و توضیحات کد اصلی را به همراه ندارد. به طور موثری استفاده از bcompiler bytecode برای بازسازی و تغییر کلاس بی‌فایده است. با این وجود می‌توان داده را از bcompiled bytecode بدست آورد - بنابراین رمز خصوصی یا هر چیز دیگری را در آن قرار ندهید.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top