سازگاری ionCube با PHP 8.3 و 8.4
بله، نسخههای اخیر ionCube از PHP 8.3 و 8.4 پشتیبانی میکنند. اما نکته کلیدی این است که هم لودر روی سرور و هم نسخه هدفی که فایل برای آن انکد میشود باید با نسخه PHP سرور هماهنگ باشند. فایلی که برای ۸.۲ انکد شده، لزوما بدون تنظیم درست روی ۸.۳ اجرا نمیشود. در ادامه جدول کامل و توصیه عملی انتخاب نسخه را میبینید.
این مقاله در یک نگاه
- ionCube از PHP 7.4 تا 8.4 پشتیبانی میکند.
- خروجی PHP 8.4 فقط با نسل ۱۵ انکدر ساخته میشود.
- لودر روی سرور مقصد باید بهروز باشد تا نسخههای جدید را بشناسد.
- برای فروش عمومی، نسخه میانه مثل ۸.۱ یا ۸.۲ انتخاب امنتری است.
- برای هر نسخه هدف میتوانید خروجی جداگانه بسازید.
کدام نسخههای PHP پشتیبانی میشوند؟
ionCube در نسلهای اخیر خود پشتیبانی از PHP 8.3 و 8.4 را اضافه کرده است. اما این پشتیبانی دو سمت دارد که هر دو باید فراهم باشد.
سمت اول انکدر است: باید نسلی از انکدر را انتخاب کنید که آن نسخه PHP را به عنوان هدف بشناسد. سمت دوم لودر است: سرور مقصد باید نسخهای از لودر داشته باشد که خروجی آن نسل را اجرا کند. اگر یکی از این دو فراهم نباشد، خطا میگیرید.
جدول کامل سازگاری
| نسخه PHP | وضعیت پشتیبانی | نکته عملی |
|---|---|---|
| PHP 7.4 | پشتیبانی کامل | هنوز روی هاستهای قدیمی رایج است |
| PHP 8.0 | پشتیبانی کامل | در حال کم شدن استفاده |
| PHP 8.1 | پشتیبانی کامل | گزینه امن برای فروش عمومی |
| PHP 8.2 | پشتیبانی کامل | پرکاربردترین نسخه امروزی |
| PHP 8.3 | پشتیبانی در نسلهای اخیر | نیازمند لودر بهروز روی سرور |
| PHP 8.4 | پشتیبانی در جدیدترین نسل | فقط با نسل ۱۵ انکدر و لودر جدید |
یک فایل روی چند نسخه اجرا میشود؟
این پرتکرارترین سوال در این حوزه است و پاسخ کوتاهش این است: نه به صورت تضمینشده. هنگام انکد یک نسخه هدف PHP انتخاب میشود و خروجی برای همان نسخه بهینه میشود.
در عمل ممکن است خروجی روی نسخههای نزدیک هم کار کند، اما روی این موضوع حساب باز نکنید. اگر میخواهید محصولتان روی چند نسخه اجرا شود، دو راه دارید: برای هر نسخه یک خروجی جداگانه بسازید و به مشتری بگویید کدام را نصب کند، یا نسخهای را هدف بگیرید که با سرور مقصد دقیقا یکی است.
| سناریو | راهکار |
|---|---|
| یک مشتری با سرور مشخص | خروجی دقیقا برای همان نسخه |
| فروش به چند مشتری متفاوت | چند خروجی برای نسخههای رایج |
| محصول عمومی و پرفروش | هدفگیری نسخه میانه پرکاربرد |
| پروژه داخلی سازمانی | نسخه دقیق سرور سازمان |
کدام نسخه را هدف بگیریم؟
اگر مقصد را میشناسید، تصمیم ساده است: همان نسخه سرور. اما اگر محصول را به صورت عمومی میفروشید و نمیدانید روی چه هاستی نصب میشود، انتخاب محافظهکارانه بهتر است.
در عمل، PHP 8.1 و 8.2 روی بیشترین تعداد هاستهای فعال امروزی در دسترساند و لودرشان هم تقریبا همهجا نصب است. هدفگیری این نسخهها کمترین احتمال خطا را دارد. اگر مشتریان شما توسعهدهنده و سرور مدرن دارند، هدفگیری ۸.۳ یا ۸.۴ منطقیتر است. برای درک بهتر رابطه نسل و لودر، مقاله ناسازگاری نسخه را ببینید.
وقتی سرور PHP را ارتقا میدهد
یک سناریوی رایج که باید برایش آماده باشید: مشتری هاستش را ارتقا میدهد و ناگهان اسکریپت شما از کار میافتد. علتش این است که خروجی برای نسخه قبلی ساخته شده بود.
در این حالت باید خروجی جدیدی برای نسخه بهروز بسازید و برای مشتری بفرستید. به همین دلیل توصیه میشود همیشه نسخه اصلی سورس را نگه دارید تا بتوانید هر زمان خروجی تازه تولید کنید. همچنین بد نیست در شرایط فروش، سیاست پشتیبانی از ارتقای نسخه را مشخص کنید.
برای شناخت پایهایتر نقش لودر و انکدر، ionCube Loader چیست و ionCube Encoder چیست را بخوانید. فهرست رسمی نسخههای پشتیبانیشده هم در سایت ionCube منتشر میشود.
سوالات متداول
فایل انکدشده برای 8.2 روی 8.3 اجرا میشود؟
تضمینی نیست. بهترین کار این است که برای همان نسخه PHP سرور مقصد انکد کنید، وگرنه ممکن است خطای نسخه بگیرید.
برای PHP 8.4 چه چیزی لازم است؟
نسل ۱۵ انکدر و لودر بهروز روی سرور. لودر قدیمی نمیتواند خروجی 8.4 را اجرا کند.
کدام نسخه برای فروش عمومی امنتر است؟
نسخه میانه مثل 8.1 یا 8.2 که روی بیشتر هاستهای امروزی فعال است و لودرش تقریبا همهجا نصب است.
اگر مشتری PHP را ارتقا دهد چه میشود؟
ممکن است اسکریپت از کار بیفتد. باید خروجی جدیدی برای نسخه بهروز بسازید، پس نسخه اصلی سورس را نگه دارید.
میتوانم یک خروجی برای همه نسخهها بسازم؟
خیر. برای هر نسخه هدف، خروجی جداگانه لازم است. اگر چند گروه مشتری دارید، چند خروجی تهیه کنید.
مطالب مرتبط: خطای ناسازگاری نسخه · بهروزرسانی لودر · ionCube Loader چیست؟
PHP