2015年11月26日 星期四

PHP remote debugging using xdebug:PhpStorm 設定

以下擷圖使用 PhpStorm 10,使用 Laravel 與 Homestead

=============================================

設定 PHP Interpreter



設定 Server,與 Homestead.yaml 對照


設定 Debug Configuration




=============================================

設定完囉!!!!


相關文章:

http://www.sitepoint.com/install-xdebug-phpstorm-vagrant/

http://www.sitepoint.com/debugging-and-profiling-php-with-xdebug/

PHP remote debugging using xdebug:server side setup

server 端設定(ubuntu)

方法一:php.ini

[Xdebug]
zend_extension=/path/to/xdebug.so
xdebug.remote_enable=1
# xdebug.remote_connect_back=1
xdebug.remote_host=debug client's(IDE or browser) IP
xdebug.remote_port=9000

方法二:新增 /etc/php5/mods-available/xdebug.ini,內容如下

zend_extension=/path/to/xdebug.so
xdebug.remote_enable=1
# xdebug.remote_connect_back=1
xdebug.remote_host=debug client's(IDE or browser) IP
xdebug.remote_port=9000

然後建立軟連結至 /etc/php5/apache2/conf.d/20-xdebug.ini

設定完重新啟動 apache2

Note
1. 當 xdebug.remote_connect_back=1 時,xdebug.remote_host 的設定會被忽略
2. 以下是 laravel/homestead 的 /etc/php5/mods-available/xdebug.ini

zend_extension=xdebug.so
xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.max_nesting_level = 512


xdebug 工作原理

(圖片來源:http://xdebug.org/docs/remote

debug client 預設監聽 9000 port

情況一
debug client IP 已知或單人開發,設定 xdebug.remote_host


debug client 發起 HTTP Request
server 上之 xdebug 以 DBGP 協定連線至 debug client 9000 port
debug client 以 DBGP 協定與 server xdebug 溝通
server 送出 HTTP Response

情況二
debug client IP 未知或多人開發時,設定 xdebug.remote_connect_back=1


debug client 發起 HTTP Request
server xdebug 偵測到 debug client IP
server 上之 xdebug 以 DBGP 協定連線至 debug client 9000 port
debug client 以 DBGP 協定與 server xdebug 溝通
server 送出 HTTP Response



參考資料

2015年11月21日 星期六

將 HTML 轉成 PDF

PhantomJS

官網

Generating PDF files from HTML and CSS

composer package for Laravel:

danielboendergaard/phantom-pdf

-------------------------------------------------------------

wkhtmltopdf

官網

Snappy PDF/Image Wrapper for Laravel 5

1. 利用 composer 安裝:

composer require barryvdh/laravel-snappy
composer require h4cc/wkhtmltopdf-amd64 0.12.x
composer require h4cc/wkhtmltoimage-amd64 0.12.x

2. publish config/snappy.php:

php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider" --tag=config

3. 編輯 config/snappy.php,設定 path:

for pdf:
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),

for image:
'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltoimage-amd64'),

4. 編輯 config/app.php,加入 ServiceProvider 和 Facade:

Barryvdh\Snappy\ServiceProvider::class,

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'Image' => Barryvdh\Snappy\Facades\SnappyImage::class,

-------------------------------------------------------------

dompdf

github

DOMPDF Wrapper for Laravel 5

安裝好之後要在 storage 下新增 fonts 資料夾(要有寫入權限),會下載一些字型檔

大概測試了一下,結果....我覺得不好用,有時有些 css 會造成問題........


-------------------------------------------------------------

參考資料

強制換頁

CSS 在列印文件上的運用

utf-8 支援

CSS background-image Property

CSS3 Backgrounds

Paged Media Properties

http://t301000.blogspot.tw/2015/11/html-phantomjs-pdf.html

2015年11月1日 星期日

Debian / Ubuntu update-rc.d 用法

Debian / Ubuntu update-rc.d 用法

ubuntu 開機自動執行

小小工程師的生活雜記: [Ubuntu]關於update-rc.d 用法

讓ubuntu開機後自動執行指定的script

https://wiki.debian.org/RunLevel

用 HTML + PhantomJS 產生 PDF

用 HTML + CSS 設計版面,透過 PhantomJS 產生 PDF

參考:

Generating PDFs from HTML and PhantomJS(以 Laravel 為例)

Generating PDF files from HTML and CSS(YouTube)

分頁:(沒試過,不知道可不可行)

How to handle PDF pagination in PhantomJS

PhantomJs - How to render a multi page PDF

Phantomjs generates multiple page PDF

安裝新版 adminer on ubuntu 14.04

Adminer 官網

套件庫中的版本為舊版的 3.3.x版,所以要用新版的就要自己裝囉,不難啦。

參考資料:
https://www.leaseweb.com/labs/2014/06/install-adminer-manually-ubuntu-14-04/
http://idroot.net/tutorials/how-to-install-adminer-on-ubuntu-14-04/