গল্প অনেক হলো। কাজে নামা যাক:
সমস্যা-১: ডেভেলপমেন্ট সার্ভার পরিবর্তন করার পর নিচের মতো মেসেজ আসছে:

সমাধান: এটার সমাধান একটা আর্টিসান কমান্ড - php artisan config:cache
এছাড়া নিচের আর্টিসান কমান্ডগুলো একদম নখের অগ্রভাগে রাখতে হবে, অনেক ঝামেলা থেকে সহজে মুক্তি পাওয়া যাবে:
সমস্যা-২: নতুন প্যাকেজ পাবলিশ করতে গেলে নিচের মতো অপশন আসছে:
সমাধান: হা!হা!হা! প্রথম যেদিন দেখি আপনার মতো আমিও খুব মজা পেয়েছি। আসলে লারাভেলে পুরোনো ভার্সনগুলোতে এমন আসতো না। তো যাইহোক, এটা কোন সমস্যা না। শুধু যে প্যাকেজটা নতুন অ্যাড করে পাবলিশ করতে চাচ্ছেন সেই অপশনটা বেছে নিন।
সমস্যা-৩: এনট্রাস্ট প্যাকেজ-এর মাইগ্রেশন করতে গেলে নিচের মতো মেসেজ আসছে:
সমাধান: এটার সমাধান এনট্রাস্ট-এর গিটহাবেই রয়েছে। সমাধানটি দিয়েছেন dokicro ভাই এবং অনেকের ভাব-ভালোবাসা পেয়েছেন! আমাদের পক্ষ থেকেও তাকে লাল গোলাপ শুভেচ্ছা!
সমস্যা-৪: নিচের মেসেজটা অনেকের অন্য যেকোন সময় আসতে পারে, তবে আমার এসেছে এনট্রাস্ট প্যাকেজ-এর কারণে:
সমাধান-১: এটার সহজ সমাধানটা নিয়ে একটু বিতর্ক আছে। তাহলো .env ফাইল-এ CACHE_DRIVER টি file এর পরিবর্তে array করে দেয়া।
সমাধান-২: .env ফাইল-এ CACHE_DRIVER টি file এর পরিবর্তে memcached করে দেয়া। তবে এক্ষেত্রে PHP-র php memcached extension টি সার্ভারে ইন্সটল থাকতে হবে। (গাইডলাইন: https://serverpilot.io/docs/how-to-install-the-php-memcache-extension)
সমস্যা-৫: নিচের পুরোনো প্রজেক্টগুলো লারাভেলের নতুন ভার্সনে আনলে মাইগ্রেশন করার সময় নিচের মতো মেসেজ আসছে:
সমাধান-১: মাইগ্রেশন ফাইলে টেবিল স্কিমাগুলোর উপরে নিম্নলিখিত লাইনটি বসিয়ে নিলে আপাতত কাজ চলে যাবে। তবে এটাই বেস্ট ওয়ে কিনা বিতর্ক আছে।
Schema::defaultStringLength(191);
use Illuminate\Support\Facades\Schema;
public function boot() {(বি:দ্র: সমাধান-২ টাই বেশি ব্যবহার হতে দেখছি। অতএব এটাই অ্যাপ্লাই করা ভালো।)
Schema::defaultStringLength(191);
}
সমাধান-৩: সমাধানটা হচ্ছে /config/database.php -তে mysql engine => null কে engine => 'InnoDB' করে নিতে হবে। বিশেষ করে কোন প্যাকেজ ইন্সটল করার সময় এরর দিলে এবং সমাধান-2 প্রয়োগ করার পরেও যদি ‘key was too long' এরর দেয় তাহলে engine পরিবর্তন করা যেতে পারে।
সমস্যা-৬: পুরোনো প্রজেক্টগুলো লারাভেলের নতুন ভার্সনে আনলে (কিংবা অন্য কারণে) নিচের মতো মেসেজ আসতে পারে:
সমাধান: সমাধানটা নিচে দিলাম, কিন্তু আমার খুব একটা পছন্দ হয় নাই। থাক, আপাতত কাজ চলুক...
class User extends Authenticatable implements MustVerifyEmail
{
use Notifiable;
use EntrustUserTrait { restore as private restoreA; }
use SoftDeletes { restore as private restoreB; }
public function restore()
{
$this->restoreA();
$this->restoreB();
}
}
No comments:
Post a Comment