سازگاری 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 8.4 خروجی برای PHP 8.4 فقط با نسل ۱۵ انکدر تولید می‌شود. اگر نسل ۱۳ یا ۱۴ را انتخاب کنید، این نسخه هدف در دسترس نخواهد بود.

یک فایل روی چند نسخه اجرا می‌شود؟

این پرتکرارترین سوال در این حوزه است و پاسخ کوتاهش این است: نه به صورت تضمین‌شده. هنگام انکد یک نسخه هدف PHP انتخاب می‌شود و خروجی برای همان نسخه بهینه می‌شود.

در عمل ممکن است خروجی روی نسخه‌های نزدیک هم کار کند، اما روی این موضوع حساب باز نکنید. اگر می‌خواهید محصولتان روی چند نسخه اجرا شود، دو راه دارید: برای هر نسخه یک خروجی جداگانه بسازید و به مشتری بگویید کدام را نصب کند، یا نسخه‌ای را هدف بگیرید که با سرور مقصد دقیقا یکی است.

سناریوراهکار
یک مشتری با سرور مشخصخروجی دقیقا برای همان نسخه
فروش به چند مشتری متفاوتچند خروجی برای نسخه‌های رایج
محصول عمومی و پرفروشهدف‌گیری نسخه میانه پرکاربرد
پروژه داخلی سازمانینسخه دقیق سرور سازمان

کدام نسخه را هدف بگیریم؟

اگر مقصد را می‌شناسید، تصمیم ساده است: همان نسخه سرور. اما اگر محصول را به صورت عمومی می‌فروشید و نمی‌دانید روی چه هاستی نصب می‌شود، انتخاب محافظه‌کارانه بهتر است.

در عمل، PHP 8.1 و 8.2 روی بیشترین تعداد هاست‌های فعال امروزی در دسترس‌اند و لودرشان هم تقریبا همه‌جا نصب است. هدف‌گیری این نسخه‌ها کمترین احتمال خطا را دارد. اگر مشتریان شما توسعه‌دهنده و سرور مدرن دارند، هدف‌گیری ۸.۳ یا ۸.۴ منطقی‌تر است. برای درک بهتر رابطه نسل و لودر، مقاله ناسازگاری نسخه را ببینید.

وقتی سرور PHP را ارتقا می‌دهد

یک سناریوی رایج که باید برایش آماده باشید: مشتری هاستش را ارتقا می‌دهد و ناگهان اسکریپت شما از کار می‌افتد. علتش این است که خروجی برای نسخه قبلی ساخته شده بود.

در این حالت باید خروجی جدیدی برای نسخه به‌روز بسازید و برای مشتری بفرستید. به همین دلیل توصیه می‌شود همیشه نسخه اصلی سورس را نگه دارید تا بتوانید هر زمان خروجی تازه تولید کنید. همچنین بد نیست در شرایط فروش، سیاست پشتیبانی از ارتقای نسخه را مشخص کنید.

برای شناخت پایه‌ای‌تر نقش لودر و انکدر، ionCube Loader چیست و ionCube Encoder چیست را بخوانید. فهرست رسمی نسخه‌های پشتیبانی‌شده هم در سایت ionCube منتشر می‌شود.

جمع بندی: ionCube از PHP 7.4 تا 8.4 پشتیبانی می‌کند، اما پشتیبانی زمانی کامل است که هم نسل انکدر آن نسخه را هدف بگیرد و هم لودر سرور مقصد به‌روز باشد. برای PHP 8.4 حتما به نسل ۱۵ نیاز دارید. اگر مقصد را می‌شناسید همان نسخه را هدف بگیرید و اگر فروش عمومی دارید، ۸.۱ یا ۸.۲ انتخاب امن‌تری است چون روی بیشترین تعداد هاست فعال است.

سوالات متداول

فایل انکدشده برای 8.2 روی 8.3 اجرا می‌شود؟

تضمینی نیست. بهترین کار این است که برای همان نسخه PHP سرور مقصد انکد کنید، وگرنه ممکن است خطای نسخه بگیرید.

برای PHP 8.4 چه چیزی لازم است؟

نسل ۱۵ انکدر و لودر به‌روز روی سرور. لودر قدیمی نمی‌تواند خروجی 8.4 را اجرا کند.

کدام نسخه برای فروش عمومی امن‌تر است؟

نسخه میانه مثل 8.1 یا 8.2 که روی بیشتر هاست‌های امروزی فعال است و لودرش تقریبا همه‌جا نصب است.

اگر مشتری PHP را ارتقا دهد چه می‌شود؟

ممکن است اسکریپت از کار بیفتد. باید خروجی جدیدی برای نسخه به‌روز بسازید، پس نسخه اصلی سورس را نگه دارید.

می‌توانم یک خروجی برای همه نسخه‌ها بسازم؟

خیر. برای هر نسخه هدف، خروجی جداگانه لازم است. اگر چند گروه مشتری دارید، چند خروجی تهیه کنید.

مطالب مرتبط: خطای ناسازگاری نسخه · به‌روزرسانی لودر · ionCube Loader چیست؟