SSH ( คลาสทที่ใช้จัดการ ftp และ git)

<a name="configuration"></a> ## การตั้งค่า

ไปที่ไฟล์ app/config/remote.php, เราต้องตั้งค่าอาเรย์ connections ซึ่งใช้กำหนดค่าต่างๆ ในการเชื่อมต่อ connections

<a name="basic-usage"></a> ## การใช้งานเบื้องต้น

เรียกใช้

เราใช้เมทอด SSH::run เบื้องต้น

1 SSH::run(array(
2 	'cd /var/www',
3 	'git pull origin master',
4 ));
เรียกใช้พร้อมกับใช้คำสั่งเพิ่มเติม

เราจะใช้เมทอด into เพื่อเรียกใช้คำสั่ง stagging ของ git:

1 SSH::into('staging')->run(array(
2 	'cd /var/www',
3 	'git pull origin master',
4 ));
แคชผลของคำสัั่งเพื่อความรวดเร็ว

ใช้เมทอด run แล้วใส่ฟังก์ชันเข้าไป:

1 SSH::run($commands, function($line)
2 {
3 	echo $line.PHP_EOL;
4 });

<br /><br /> ## Tasks <a name="tasks"></a> ถ้าเราต้องการใช้คำสั่งทีละหลายๆ ตัว สามารถทำได้โดยใช้เมทอด define เช่น ในตัวอย่างเราตั้งชื่อ ชุดคำสั่งว่า deploy :

1 SSH::into('staging')->define('deploy', array(
2 	'cd /var/www',
3 	'git pull origin master',
4 	'php artisan migrate',
5 ));

ข้างบนเป็นการประกาศ ข้างล่างเป็นการเรียกใช้ครับ

1 SSH::into('staging')->task('deploy', function($line)
2 {
3 	echo $line.PHP_EOL;
4 });

<a name="sftp-downlaods"></a> ## SFTP Downloads

การดาวน์โหลดไฟล์นั้น จะใช้เมทอด get ในแล้วใส้ที่อยู่บน FTP กับ บนเครื่องของเราไป

1 SSH::into('staging')->get($remotePath, $localPath);
2 
3 $contents = SSH::into('staging')->getString($remotePath);

<a name="sftp-uploads"></a> ## SFTP Uploads

ส่วนการอัพโหลดไฟล์นั้น ใช้เมทอด putในการอัพโหลด และ putString ในการกำหนดที่อยู่

1 SSH::into('staging')->put($localFile, $remotePath);
2 
3 SSH::into('staging')->putString($remotePath, 'Foo');

<br /><br /><br /><br /> <a name="tailing-remote-logs"></a> ## Tailing Remote Logs

คือการดาวน์โหลดไฟล์ laravel.log ซึ่งเป็นไฟล์ log นั้นเอง ข้างล่างเป็น ตัวอย่างการใช้งานครับ

1 php artisan tail staging
2 
3 php artisan tail staging --path=/path/to/log.file