آموزش انکد افزونه وردپرس با ionCube
برای انکد افزونه وردپرس، فایلهای PHP منطقی افزونه و بهویژه کلاسهای لایسنس را انکد میکنید و فایل readme و ترجمه و assets را دستنخورده میگذارید. سپس افزونه روی هر هاستی که ionCube Loader دارد نصب و اجرا میشود، در حالی که سورس اصلی قابل خواندن نیست و کسی نمیتواند بررسی لایسنس را حذف کند.
این مقاله در یک نگاه
- فایل اصلی و کلاس لایسنس مهمترین فایلها برای انکد هستند.
- readme و po و mo و assets هرگز نباید انکد شوند.
- هدر افزونه باید خوانا بماند تا وردپرس نام و نسخه را نمایش دهد.
- ترکیب انکد با قفل دامنه توزیع غیرمجاز را متوقف میکند.
- قبل از تحویل، افزونه را روی یک وردپرس تازه تست کنید.
کدام فایلها را انکد کنیم؟
این تصمیم کیفیت نهایی کار را تعیین میکند. انکد کردن همه چیز نه لازم است و نه درست؛ بعضی فایلها باید خوانا بمانند وگرنه وردپرس یا خود افزونه از کار میافتد.
| فایل | انکد شود؟ | دلیل |
|---|---|---|
| فایل اصلی افزونه | بله | نقطه ورود و منطق اصلی |
| کلاس اعتبارسنجی لایسنس | بله (مهمترین) | هدف مستقیم نالکنندهها |
| کلاسهای منطق کسب و کار | بله | ارزش واقعی محصول |
| readme.txt | خیر | وردپرس و بازارها آن را میخوانند |
| فایلهای ترجمه po و mo | خیر | ساختار زبانی خراب میشود |
| assets شامل css و js | خیر | اصلا PHP نیستند |
| قالبهای نمایشی | معمولا خیر | مشتری اغلب میخواهد سفارشی کند |
نکته مهم هدر افزونه
هر افزونه وردپرس یک بلوک کامنت در ابتدای فایل اصلی دارد که نام، نسخه، نویسنده و توضیحات را مشخص میکند. وردپرس این بلوک را میخواند تا افزونه را در فهرست پیشخوان نمایش دهد.
ionCube این هدر را حفظ میکند، اما بعد از انکد حتما افزونه را در یک وردپرس نصب کنید و بررسی کنید که نام و نسخه درست نمایش داده میشود. اگر هدر خوانده نشود، وردپرس افزونه را به درستی نمیشناسد و ممکن است در فهرست ظاهر نشود.
مراحل انکد افزونه
- پشتیبانگیری یک نسخه از سورس اصلی را جای امن نگه دارید؛ خروجی قابل بازگشت نیست.
- پاکسازی بسته فایلهای تست، مستندات توسعه و پوشههای غیرضروری را از بسته حذف کنید.
- آپلود ZIP پوشه افزونه را فشرده و در پنل بارگذاری کنید.
- انتخاب فایلها فقط فایلهای PHP منطقی را برای انکد علامت بزنید.
- انتخاب نسخه هدف PHP نسخهای که هاست مشتری اجرا میکند.
- تعیین قفل دامنه در صورت فروش به مشتری مشخص، دامنه او را وارد کنید.
- تست روی وردپرس تازه افزونه انکدشده را نصب و فعال کنید و مسیرهای اصلی را امتحان کنید.
ترکیب با قفل دامنه
انکد جلوی خواندن و ویرایش سورس را میگیرد اما جلوی کپی فایل را نمیگیرد. اگر خریدار افزونه انکدشده را به دیگری بدهد، روی سایت دوم هم اجرا میشود. برای بستن این راه، خروجی را روی دامنه خریدار قفل کنید.
در این حالت لودر هنگام اجرا دامنه فعلی را با دامنه مجاز مقایسه میکند و اگر یکی نبود اجرا را متوقف میکند. توضیح کامل در قفل کردن اسکریپت روی یک دامنه و صفحه لایسنسگذاری آمده است. برای درک اینکه چرا این ترکیب مؤثر است، جلوگیری از نال شدن افزونه را ببینید.
سازگاری با هاست مشتری
افزونه انکدشده روی هر هاستی که ionCube Loader دارد اجرا میشود و این لودر امروز روی اکثر هاستهای اشتراکی ایرانی فعال است یا با یک تیک فعال میشود.
دو نکته را جدی بگیرید. اول نسخه PHP: خروجی را برای همان نسخهای بسازید که هاست مشتری اجرا میکند. دوم نسل انکدر: نسخه لودر مقصد باید مساوی یا جدیدتر از نسل انکدر باشد. جدول کامل در سازگاری با PHP ۸.۳ و ۸.۴ آمده است.
مشکلات رایج پس از انکد
| مشکل | علت | راهحل |
|---|---|---|
| افزونه در فهرست وردپرس نیست | هدر افزونه خوانده نمیشود | فایل اصلی و هدر را بررسی کنید |
| ترجمهها کار نمیکنند | فایلهای po و mo انکد شدهاند | آنها را از انکد خارج کنید |
| خطای needs to be installed | لودر روی هاست فعال نیست | راهنمای رفع خطا |
| فراخوانی داینامیک کلاس خطا میدهد | مبهمسازی نام کلاسها | مبهمسازی را برای آن بخش غیرفعال کنید |
برای دیدن راهنمای کامل تجاری و انتخاب فایلها، صفحه انکد افزونه وردپرس را ببینید. اطلاعات فنی رسمی هم در سایت ionCube موجود است.
سوالات متداول
انکد روی عملکرد افزونه اثر میگذارد؟
خیر. هوکها، اکشنها و فیلترهای وردپرس بدون تغییر اجرا میشوند و افت سرعت محسوسی وجود ندارد.
همه فایلهای افزونه را انکد کنم؟
خیر. فقط فایلهای PHP دارای منطق. readme، ترجمه، assets و تنظیمات باید خوانا بمانند.
افزونه انکدشده روی هاست مشتری اجرا میشود؟
بله اگر ionCube Loader فعال باشد که روی اکثر هاستهای اشتراکی فعال است یا با یک تیک فعال میشود.
میتوانم برای هر خریدار نسخه قفلشده بسازم؟
بله. خروجی مخصوص دامنه هر مشتری قابل تهیه است و مؤثرترین راه توقف توزیع غیرمجاز است.
بعد از بهروزرسانی افزونه باید دوباره انکد کنم؟
بله. هر نسخه جدید سورس باید دوباره انکد شود؛ به همین دلیل نگه داشتن سورس اصلی ضروری است.
مطالب مرتبط: جلوگیری از نال شدن افزونه · قفل روی دامنه · صفحه انکد وردپرس
PHP