Ukieweb

Diary

I write here what I learn

Valet এর সাথে CakePhp

Valet এর সাথে CakePhp

Homestead, নামটি হয়তো লারাভেল নিয়ে কাজ করেন, এমন সবার কাছেই পরিচিত। Laravel Homestead একটি অফিসিয়াল প্রাক প্যাকেজ ভ্যাগেন্ট বক্স যা আপনাকে আপনার স্থানীয় মেশিনে পিএইচপি, ওয়েব সার্ভার এবং অন্য যেকোনো সার্ভার সফ্টওয়্যার ইনস্টল করার প্রয়োজনে একটি চমৎকার ডেভেলপমেন্ট পরিবেশ প্রদান করে।

Homestead এর মতন আরেকটি হচ্ছে Valet। তবে, এটি শুধুমাত্র Mac এর জন্য এবং এটি লোকাল মেশিন এ ডাটাবেজ এবং PHP ইন্সটল করে এবং সেটি ব্যবহার করে। তবে এটি খুব সহজেই  Homebrew এর মাধ্যমে করা যায়। সহজ কথায়, আপনি ডোমেইন কেনা ছাড়াই নির্দিস্ট নামে লোকাল সার্ভারেই ডোমেইন দিয়ে কাজ করতে পারবেন, তাও নিজের ইচ্ছে মতন নাম দিয়ে। কি মজা না? হা, সত্যি, একদম রসগোল্লা। হতে পারে একটি প্রজেক্ট করছেন, সেখানে মিষ্টি বিক্রি করবেন। লাইভ সার্ভারে তোলার আগে নিজেই নিজের লোকাল মেশিনে ডোমেইন তৈরি করে সবাইকে চমকে দিলেন, আবার সেই ডোমেইন শেয়ার ও করলেন। অর্থাৎ এখানে ভার্চুয়াল হোষ্ট একেবারে পানিভাত।

http://roshogolla.eat

ভাবছেন যে "সব জায়গায়তো লারাভেল, আমি তো কেক নিয়ে কাজ করছি, আমি এটি দিয়ে কি খাবো? আই মিন, কি করবো?” হ্যা, আমিও তাই ভেবেছিলাম। কিন্তু সেই আফসোস এখন নেই। Valet এখন CakePhp কেও সাপোর্ট করছে। এমনকি আপনি অন্য অনেক ফ্রেমোয়ার্ক কেও সাপোর্ট করাতে পারবেন সহজে।

আমরা এখন জানবো কিভাবে CakePhp এর সাথে Valet দিয়ে কাজ করতে পারেন।

প্রথমে Terminal ওপেন করুন। এরপর প্রথমে Homebrew ইন্সটল করে নিন।

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

কমান্ডটি রান করলেই Homebrew ইন্সটল হয়ে যাবে। এখন Brew আপডেট করে নিন।

brew update

যা আগে বলেছিলাম, Brew এর মাধ্যমে সহজেই আপনি PHP এবং ডাটাবেজ ইন্সটল করে নিতে পারবেন। আমরা PHP7.1 ইন্সটল করবো। (অন্য ভার্সন ও ইন্সটল করতে হবে একই ভাবে)। রান করুন নিচের কমান্ডটি

brew install homebrew/php/php71

যেহেতু CakePhp এর জন্য intl এক্সটেনশন দরকার হয়, তাই আমরা এটিও ইন্সটল করে নিবো।

brew install homebrew/php/php71-intl

php.ini তে যেয়ে intl এক্সটেনশন ওপেন করে দিতে হবে। সাধারণত /usr/local/etc/php/ তে PHP ভার্সন ভিত্তিক ফোল্ডারে php.ini ফাইল পাবেন। এখন আমরা ডাটাবেজ হিসেবে mysql ইন্সটল করবো নিচের কমান্ড দিয়ে

brew install mysql

PHP এবং mysql রেডি। এখন দরকার সার্ভার এবং ডোমেইন নেম সিস্টেম। কি ভাবছেন? ঝামেলা শুরু? এতো কিছু তাহলে কেন গল্প করলাম যে খুব সহজে ডোমেইন নেম নিয়ে কাজ করা যায় Valet দিয়ে, আর এখন আবার সার্ভার এবং ডোমেইন নেম সিস্টেম ইন্সটল করতে বলতেছি? পুরাই ১৫% ভ্যাট ফিলিংস …

না ভাই, কাহিনীর মোড় ঘুরে যাবে এখনই। আপনাকে কিছুই আলাদা ভাবে ইন্সটল করতে হবে না। Valet আপনাকে সব দিয়ে দিবে। একেবারে একটির সাথে একটি ফ্রিতে। একটি কমান্ড চালালেই সব আপনার (৪০০০ কোটি টাকা না যদিও)। অর্থাৎ, সার্ভার, ডোমেইন নেম সিস্টেম ইত্যাদি।

তবে তার আগে composer ইন্সটল করে নিতে হবে। যদি করা না থাকে, নিচের কমান্ড চালাতে হবে

php composer-setup.php --install-dir=bin --filename=composer
mv composer.phar /usr/local/bin/composer

composer ইন্সটল হয়ে গেলো। এখন পালা এটিকে গ্লোবাল PATH এ সেট করা।

export PATH="$PATH:~/.composer/vendor/bin"
source ~/.bash_profile

এখন পালা Valet ইন্সটল এর।

composer global require laravel/valet

কিছুক্ষণ অপেক্ষা করতে হবে। composer এর মাধ্যমে Valet ডাউনলোড হয়ে যাবে। এখন নিচের কমান্ড চালাতে হবে

valet install

কাজ শেষ। আপনার Mac এ এখন Valet চালু হয়ে গেছে। আপনি Valet চলছে কিনা সেটি টেস্ট করতে Terminal এ ping করুন

ping foobar.dev

যদি রেসপন্স পান, তার মানে Valet রেডি। বাই ডিফল্ট .dev ডোমেইন হিসেবে পাবেন। তবে এটি পরিবর্তন করতে পারবেন নিচের কমান্ড দিয়ে।

valet domain eat

এখন CakePhp এর জন্য একটু কাজ করতে হবে। নিচের ফোল্ডার এ যেতে হবে

cd ~/.valet/Drivers/

এখানে গেলে দেখতে পাবেন, SampleValetDriver.php নামে একটি ফাইল আছে। এটিকে কপি করে CakephpValetDriver.php নামে একটি ফাইল তৈরি করুন এবং তার ভেতরে PHP Class SampleValetDriver কে CakephpValetDriver দিয়ে রিনেম করে নিন। এখন frontControllerPath নামে একটি ফাংশন আছে, সেটিকে নিচের কোড দিয়ে রিপ্লেস করতে হবে

public function frontControllerPath($sitePath, $siteName, $uri)
{
    $_SERVER['DOCUMENT_ROOT'] = $sitePath.'/webroot';
    $_SERVER['SCRIPT_FILENAME'] = $sitePath.'/webroot/index.php';
    $_SERVER['SCRIPT_NAME'] = '/index.php';
    $_SERVER['PHP_SELF'] = '/index.php';
        
    return $sitePath.’/webroot/index.php';
}

আপনার সিস্টেম এখন পুরোপুরি রেডি। এখন শুধু park অথবা link করা বাকি। park করতে হবে যদি আপনি আপনার কোনো একটি ডিরেক্টোরির সকল প্রজেক্ট এর জন্য Valet এর এক্সেস দিতে চান। অর্থাৎ আমরা সাধারণত htdocs ফোল্ডারে সকল প্রজেক্ট রাখি। সুতরাং এই ফোল্ডারে এসে

valet park

কমান্ড রান করলেই, সকল প্রজেক্ট আপনি এক্সেস করতে পারবেন .eat বা সেট করা ডোমেইন দিয়ে। আর যদি আপনি শুধু নির্দিস্ট একটি প্রজেক্ট ফোল্ডারের জন্য ডোমেইন সেট করতে চান, তবে সেই ফোল্ডারে যেয়ে নিচের কমান্ড চালাতে হবে।

valet link url-name

Example:

valet link cakephp

এখন ব্রাউজারে cakephp.eat লিখলেই দেখবেন প্রজেক্টটি রান করছে। আমরা phpmyadmin কেও একই ভাবে ব্রাউজ করতে পারবো, সে ক্ষেত্রে phpmyadmin না ইন্সটল করা থাকলে, brew এর মাধ্যমে ইন্সটল করে নিতে পারেন এবং phpmyadmin এর ফোল্ডারে যেয়ে link করে দিতে পারেন।

Valet এ আপনি চাইলে Php এর একাধিক ভার্সন ইন্সটল করে রাখতে পারেন এবং একেক সময় একেকটি ভার্সনে সুইচ করতে পারেন। ধরি আমাদের কাছে Php71 এবং Php56 ইন্সটল করা আছে। আমরা যদি এখন Php71 থেকে Php56 এ সুইচ করতে চাই, তবে নিচের কমান্ডগুলি চালাতে হবে।

sudo brew services stop php71
brew unlink php71
brew link php56

এখন brew এবং Valet কে রিস্টার্ট করতে হবে।

valet restart

আরো সহযোগিতার জন্য নিচের লিঙ্ক গুলি দেখতে পারেন।

https://laravel.com/docs/5.4/valet http://braumeister.org/ https://github.com/laravel/valet/issues/368 https://laracasts.com/discuss/channels/laravel/valet-custom-driver-with-other-php-version https://scotch.io/tutorials/use-laravel-valet-for-a-super-quick-dev-server#using-a-database-with-valet

ধন্যবাদ।

0 Comments

To make a comment you have to login