發表文章

目前顯示的是 2016的文章

Laravel 5.3 自學筆記 (建立 Auth 登入系統)

圖片
剛建立起來的 Laravel 真是有夠無聊,因為裡面什麼都沒有。所以我們拿一個會員登入功能來驗證一下他是不是超級強大。

首先先建立一個路由:

php artisan make:auth
接著,把資料庫備齊(先假設你 .env 設定過了)
php artisan migrate 如此一來,artisan 就已經幫你把 登入相關的功能 Login,Register,Logout 都寫好了~神奇吧!

註冊畫面
登入畫面,還有記住帳號和忘記密碼的功能
忘記密碼

Auth 文件

Laravel 5.3 自學筆記 (建立第一個 Laravel 專案)

圖片
經過一番努力後,終於我們要來建立第一個專案了。
一樣用指令

cd ~/Homestead vagrant up vagrant ssh 順利連線進入到 VM 後,利用 Composer 建立一個新專案:
composer create-project laravel/laravel --prefer-dist composer 就會將最新版本的 larvel 安裝到你的指定目錄底下。這時我們打開當初設定 ~/.homestead/Homestead.yaml 檔案裡面的網址就可以顯示 Laravel 的歡迎畫面摟



Laravel 5.3 自學筆記 (環境安裝篇)

Laravel 5.3 自學筆記 (資料庫連線)

圖片
我們在寫 php & MySQL 的時候很習慣用 phpMyAdmin 這個東西在做控制。
遇到 Laravel 的時候我們該怎麼辦呢?其實我們可以直接用桌面軟體連線啊~~~



Sequel Pro
下載路徑:http://www.sequelpro.com/


如果在設定 Homestead 的時候我們沒有更動的話 ,DB name 應該要是 homestead 。 IP 是 192.168.10.10

預設會給一個帳密 homestead / secret

接著就可以快樂的連線進去摟!

不過基本上對於 Laravel 來說,資料庫連線軟體本身並不重要。因為 Laravel 希望我們使用 artisan 指令下去進行資料庫格式的維護。

利用 artisan 指令我們就可以對於 db 進行 Eloquent 的維護。這個好處是,我們每次的更動都會被記錄下來。當我們的環境要搬移的時候可以直接用一個指令做重建的動作,而不用自己去記得更動了哪些表~會不會當掉之類的。

Laravel 5.3 自學筆記 (環境安裝篇)

據說... Laravel 最困難的地方在環境的安裝
沒錯 我也搞好久。

開始摟!

Step1  安裝 VirtualBox 不解釋直接過去安裝啦
Step2  安裝 Vagrant 也是請直接過去安裝
Step3  下載 Homestead
在終端機下執行:
vagrant box add laravel/homestead 這個過程滿久的,可以去大個便之類的。在這邊大概先講一下我們剛剛在做什麼?
Laravel 建議的開發環境在 VM 下執行,甚至上線也用 VM 這樣比較容易做到環境的統一。所以我們一開始要先安裝 VirtualBox 。

但是我們該不會每次要寫 code 先打開 VirtualBox 吧!這時候就有一個會幫你控制 VM 的傢伙出來了就是 Vagrant  我們可以在不用手動打開 VirtualBox 的情況下對我們的 VM 做設定和操作。(其實就是他幫我們操作,我們不用自己操作)

而 Homestead 就是整個 VM 的設定檔摟!為了讓大家有統一的環境,所以建議大家統一使用 Homestead 這樣就比較可以減少在移機的時候發生相容性問題。

目前 Homestead 安裝完後你的 VM 會擁有以下:
Ubuntu 16.04GitPHP 7.0HHVMNginxMySQLMariaDBSqlite3PostgresComposerNode (With PM2, Bower, Grunt, and Gulp)RedisMemcachedBeanstalkd
Step4 設定 Homestead 剛剛只是下載 Homestead 而已,還無法運行,我們要去做一些設定:
首先!我們要去下載 Homestead 的設定檔
在終端機下執行:
git clone https://github.com/laravel/homestead.git Homestead 進到 Homestead 資料夾
cd Homestead 初始化 Homestead.yaml 檔案
sh ./init.sh 這個初始化的動作會幫我們在家目錄底下 多一個隱藏的資料夾 ~/.homestead ,裡面放我們要的設定檔 Homestead.yaml 初始化 Homestead.yaml 檔案,不過如果沒啥特別的倒是不用改 打開來看看:
vim ~/.homestead/Home…

Firebase database 在 web 上面的基礎運用 (搜尋資料內容)

圖片
我們要在 firebase database 中取得資料,其實可以利用 key 的方式取得。就會非常的省事。只需要指定好 ref 的路徑。像這樣:

firebase.database().ref("/member/key").on("value",function(data){ console.log(data.val()); })
但是我們並不是一定會拿到key,很多情況下我們要搜尋某個值的存在,例如要找人名或電話號碼之類的。這時候我們需要另一個方式來達成:


firebase.database().ref("/member").orderByChild("mobile").equalTo("我的電話號碼").on('value', function(data) { console.log(data.val()); });
這時候 firebase 就會去幫你找出裡面的節點 mobile 是 我的電話號碼的資料啦!
其中 orderByChild 就是去找這個節點
equalTo 就是符合的資料內容


相關資料
Firebase database 在 web 上面的基礎運用 (讀取資料)
Firebase database 在 web 上面的基礎運用 (新增資料)
Firebase Doc

Firebase database 在 web 上面的基礎運用 (讀取資料)

圖片
上一篇
Firebase database 在 web 上面的基礎運用 (新增資料)
我們知道可以一直丟東西過去給 firebase 由於他是一個 nosql 的概念,所以資料正規並沒有像是一般的 sql 資料庫那麼嚴謹。
那我們要怎麼拿回我們的資料呢?

取得全部清單

firebase.database().ref("/member/").on('value', function(data) { console.log(data.val()); // console.log(data.val().mobile()); $.each(data.val(),function(k,v){ console.log(v); console.log(v.addr); }) });
由上面的例子看:
ref -> 路徑節點
firebase.database().ref("/member/") 表示我們要去找到 database 的/member/ 節點底下的東西,當然你如果要找得更精準可以一路往下找  firebase.database().ref("/member/某個 userid")

on -> 動作(接下來會介紹其他動作)
value -> 取得內容
function(data){}  -> 取回來的值放 data

接著我們就可以看到 consloe.log(data) 會長這樣:


其實就是一堆資料放在 object 中,如果我們要取得這裡面的資料就是 data.val();如果只要該筆資料的 key 可以用 data.key

Firebase database 在 web 上面的基礎運用 (新增資料)

圖片
會找到這邊來我們就不解釋什麼是 Firebase 了。在一些簡單的案子中我們可以直接用他的js sdk 進行資料的儲存,不用自己管 database。

1.載入環境
https://www.gstatic.com/firebasejs/live/3.0/firebase.js

// Set the configuration for your app // TODO: Replace with your project's config object var config = { apiKey: "請去 filebase申請", authDomain: "請去 filebase申請", databaseURL: "請去 filebase申請", storageBucket: "", }; firebase.initializeApp(config);
如此一來就可以呼叫來用了。

1.新增資料
var Data = { "name":"123", "phone":"0912345678" } firebase.database().ref("/member").push(Data);
很明顯地他可以直接把 json 拋給 firebase 存檔在 firebase 的後台上就可以查看。
多丟幾次他就會一直往下增加堆疊。然後會產生一組 key 用來辨識這筆資料。如果我們要抓到這隻 key的話:可以在後面加上.key
var Data = { "name":"123", "phone":"0912345678" } var Key = firebase.database().ref("/member").push(Data).key; console.log(Key);



在第一次使用的時候發現一個問題就是,他會跟你說權限有問題 Permission denied
這個時候需要…

利用 google MAP API 取得座標之間的距離

圖片
這次我收到的任務是,客戶給我一堆經緯度地理座標,我必須要去計算每個點和我之間的距離。然後要進行排序的動作
如果是之前的解法的話,我必須要自己去計算每個點和我自己的距離,寫入到一個陣列後再進行排序。其實非常的累,Google推出的這隻API可以讓我們把經緯度一次都丟給他,然後他直接回傳結果給我們(真是非常佛心)。
不過還是有規範限制的:
每個要求最多能有 25 個起點或 25 個目的地;每個要求最多能有 100 個元素 (起點數乘以目的地數)。要使用 GOOGLE API_KEY 在官方文件的範例中點選 API_KEY 直接它就會幫你套用 API_KEY (怎麼這麼好)






這個範例會從載入地圖畫面 到顯示地址,座標轉換通通都一次丟出來。我們也可以針對裡面做精簡的處理,就可以單純地取得列表(google 並沒有幫我們排序,我們可以自己來)。


官方API文件路徑:
Distance Matrix 服務

PHP + MongoDB + Centos

php 是可以使用 MongoDB 的。
CodeIgniter 3 這個框架沒有內建支援不過有很多人出來寫相關的東西,我測試了一下這個可用
https://github.com/intekhabrizvi/Codeigniter-mongo-library

抓下來以後複製到相對應的資料夾,由於這個 gitHUB 裡面沒有寫範例。所以可以看一下這邊:
http://classpattern.com/codeigniter-mongodb.html#.VvIvahJ96Hp


MongoDB 安裝完後並不是直接可以讓 PHP 使用 PHP需要安裝另外的拓展包。以 CentOS為例:

pecl install mongo
如果 pecl 找不到這個命令的話請執行: yum install gcc php56w-pear php56w-devel 這樣就可以利用 pecl 去編譯 php 需要的模組啦!

接著~如果 pecl install mongo 的時候出現 make: *** [io_stream.lo] Error 1 ERROR: `make' failed 這樣的錯誤的話請多加裝一個 yum install openssl-devel 然後重新安裝 pecl install mongo



如果有成功的話,系統會提醒你需要去修改 php.ini 然後把這個模組掛上去 extension=mongo.so 重新開啟 httpd 服務就大功告成啦!

Centos yum 加裝 MongoDB

參考:http://www.liquidweb.com/kb/how-to-install-mongodb-on-centos-7/

首先,預設的yum庫裡面沒有 MongoDB 所以我們要先新增 repo
vim /etc/yum.repos.d/mongodb.repo
64-bit :
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1

32-bit :
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/ gpgcheck=0 enabled=1

安裝: yum -y update yum -y install mongodb-org mongodb-org-server
啟用+開機時啟用: service mongod start chkconfig mongod on

facebook 用超連結直接分享資訊

我們在做 FB 分享的時候通常都會用FB提供的 sdk處理。
不過其實可以用超連結直接將網頁連到 FB 去,可以避免一些亂七八糟的問題,例如瀏覽器阻擋廣告視窗之類的

網址如下:

https://www.facebook.com/dialog/feed

參數說明: app_id 必填 display popup link 要分享的網址 redirect_uri 完成後要進入的網址 name 大標題 description 內文 picture 分享圖

這樣一大段貼上去後就可以啦!

php產生 Barcode39 一維條碼

圖片
最近在做超商付款金流,需要用到條碼產生。之前都只有用過 QRCode 原來一維條碼還是有存在的阿~~

資料來源


先下載 Barcode39.php 這個外掛。
一般的用法就是先 include 進來, 然後呼叫就會顯示了

// include Barcode39 class include "Barcode39.php"; // set Barcode39 object $bc = new Barcode39("要輸入的內容"); // display new barcode $bc->draw();
通常我會讓他存在 server 上面。只要在最後一行給路徑就可以了

$bc->draw("./files/barcode2.gif");