PHP - Passing by Reference
PHP 提供了一個將變數參照到函式中的功能
只要在定義 function 時,將要參照的變數前面加上 & 就可以宣告為參照
例如:這裡範例定義了函式以及參數設定為參照 - myfun(&$x)
Continue ReadingMarketing, SEO, Web trends, Programming tutorial, Web design, and Life event...
PHP 提供了一個將變數參照到函式中的功能
只要在定義 function 時,將要參照的變數前面加上 & 就可以宣告為參照
例如:這裡範例定義了函式以及參數設定為參照 - myfun(&$x)
Continue ReadingThere show how to custom a php artisan command
first create your custom command
This will auto generate a file in app/Console/Command/Tests/TestOutput.php
and setting a relative command for calling this file in terminal command
Continue Reading透過設定 Deploy keys (SSH Key) 可以避免掉每次 push 都要輸入帳密的流程
設定的步驟如下:
除了 ctrl+shift+. 的方式可以切換 啟用終端機,以指令方式操作顯示/隱藏檔案方式如下: 顯示檔案 defaults write com.apple.finder AppleShowAllFiles TRUE;\killall Finder 隱藏檔案 defaults write com.apple.finder AppleShowAllFiles FALSE;\killall Finder
Continue ReadingLaradock 在目前釋出的最新版本,會直接引用 MySQL latest version (MySQL 8.x)
由於 MySQL 8.x 版本的新密碼格式會引發 mysql container 一些錯誤,
The server requested authentication method unknown to the client...
因此,必須在安裝 laradock 調整 MySQL 版本
(若已經安裝且執行過 docker-compose up..,同樣可適用)
Continue ReadingLaradock 在 Laravel 社群相當知名,它提供了完整套件 Docker-Images及相關設定
讓我們能很簡單的就部署好完整的 Laravel 開發環境
當然也可以支援其他PHP專案,像是 Symfony, CodeIgniter, WordPress 等
這裡介紹如何快速的透過 Laradock 安裝 NGINX, PHP, Composer, MySQL, Redis 及 Beanstalkd
Continue Reading關閉MAC本地 apache MAC系統會自帶 apache, 在這裡要先將它關閉 暫停apache sudo apachectl -k stop 關閉開機啟動 sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Continue Reading安裝 sublime text sftp shift+command+p > Package Control:Install Package > sftp 開啟設定檔 File>SFTP/FTP/Setup Server 這時會開啟一個json格式的設定檔案 查看 vagant ssh-config 首先,先查看vagant ssh-config $ vagrant ssh-config Host homestead-7 HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/liaoxiangru/Homestead/.
Continue ReadingLaravel 為了讓PHP開發整體體驗都能完善,在local開發的環境設定也提供了相關解決方案
也就是這裡要介紹的 Homestead
Laravel Homestead 是官方所維護的 Vagrant box pre-package
讓你可以直接透過這個環境開發,而不必再獨立安裝PHP、Web server…等軟體
並且不必擔心忘記系統設定,因為 Vagrant boxes 是一次性設定安裝完畢,
如果在安裝流程有發現錯誤,隨時都可以重新安裝環境,並且只需要幾分鐘的時間就能完成
Continue Reading這裡記錄 Services 實作流程 在之前,要先透過 part2 建立了 image gordon/get-started:part2 在這裡,建立 docker-compose.yml ,透過 image 來產生五個重複的 container version: "3" services: web: # replace username/repo:tag with your name and image details image: gordon/get-started:part2 deploy: replicas: 5 resources: limits: cpus: "0.
Continue Reading這裡記錄 Containers 實作流程 在這裡按照下方流程就能快速建立出一個 python demo web 預計將專案放置在 docker_project/get_started/ 建立檔案: Dockerfile # Use an official Python runtime as a parent image FROM python:2.7-slim # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app ADD .
Continue ReadingDocker 基本操作常用的指令: docker build -t friendlyhello . # Create image using this directory's Dockerfile docker run -p 4000:80 friendlyhello # Run "friendlyname" mapping port 4000 to 80 docker run -d -p 4000:80 friendlyhello # Same thing, but in detached mode docker container ls # List all running containers docker container ls -a # List all containers, even those not running docker container stop <hash> # Gracefully stop the specified container docker container kill <hash> # Force shutdown of the specified container docker container rm <hash> # Remove specified container from this machine docker container rm $(docker container ls -a -q) # Remove all containers docker image ls -a # List all images on this machine docker image rm <image id> # Remove specified image from this machine docker image rm $(docker image ls -a -q) # Remove all images from this machine docker login # Log in this CLI session using your Docker credentials docker tag <image> username/repository:tag # Tag <image> for upload to registry docker push username/repository:tag # Upload tagged image to registry docker run username/repository:tag # Run image from a registry
Continue ReadingDocker Mount 下圖清楚了說明Docker host的 Volume with bind mounts 以及tmpfs mount 機制 這裡針對 tmpfs 部分進行介紹: tmpfs mount tmpfs mounts 只會儲存於host system的記憶體,不會寫入 host system的 filesystem。 因此,tmpfs mount 資料不會保存在硬碟、Docker host或 container 裡,只會存在container 執行的期間
Continue ReadingDocker Mount 下圖清楚了說明Docker host的 Volume with bind mounts 以及tmpfs mount 機制 這裡針對 Bind Mounts 部分進行介紹: Bind Mounts Bind mounts 在早期 Docker 版本就已經存在,相對於 volumes ,使用 Bind mounts 有一些功能限制: 當 container 在host machine 中的檔案或目錄使用 bind mount
Continue Reading下圖清楚了說明Docker host的 Volume with bind mounts 以及tmpfs mount 機制
這裡針對 Volumes 部分進行介紹:
Continue ReadingDocker - Storage drivers 為了能有效率的使用 storage drivers,一定要先了解 Docker builds 以及 stores images,container如何使用images。 Storage drivers可以允許你在容器可寫入層(container writable layer) 建立資料 但是,在 Storage driver 操作資料,有這些缺點: 讀寫效率很差 停止運行container之後,這些資料並不會保存 通常會透過 volumes 來保存資料以及改善效能問題 一個 storage driver 負責處理各layer之間的互動
Continue Reading在 Docker 管理資料
在 container 所建立的檔案,預設都會存放在可容器寫入層(writable container layer)
這表示:
當你建立一個新的 container,會同時在最上層建立一個新的可寫入層(writable layer),也稱為 container layer。
在 container內所有的改變都會在這裡面,例如: 建立新檔案,編輯檔案,刪除檔案,都會寫入這個容器可寫入層。
Continue Readingcomposer require --dev "xethron/migrations-generator"
php artisan --version
Continue Reading
Docker-Compose 是一個可以用來定義且執行多個 Container 應用程式的工具
可以很簡單的透過 Compose 的 yaml 來設定你的container應用程式
並且透過一個指令,就可以建立及啟動所有yaml設定的應用程式
Compose 可以在產品、階段產品、開發或測試項目使用
在使用上大致可以區分為三個過程:
Continue ReadingMySQL 是一個廣泛被使用,開源的關聯式資料庫管理系統( relational database management system, RDBMS)
目前的MySQL執行效能不斷提升,可靠且易於使用,
因此經常被作為網路應用程式開發資料庫的首選.
其中包括 Facebook, Twitter, YouTube, Yahoo 等公司都有使用。
詳細說明可參考官網: www.mysql.com.
這裡將說明如何在 Docker 安裝即執行 MySQL 環境
Continue Reading