發表文章

目前顯示的是有「Laravel」標籤的文章

[Laravel] Custom guard and auth provider

圖片
前言 如果要客製自己的 auth gard 用來處理驗證與登入 首先可以從官網的 Authentication 中找到! 但是寫的有一點點不全面,在這邊重新整理一下。 如果是要用 jwt 登入這種,則可以直接參考官網即可! 大致需要 自己定義的 Auth Guard 自己定義的 User Provider (後面解釋) 用來驗證的 model 建立用來驗證的 model <?php namespace App\Models\Member; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; class Member extends Authenticatable { use SoftDeletes; protected $table = 'members'; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password', 'cell_phone', 'verified', 'status', 'facebook_id', 'line_id', ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', ]; protected $dates = [ 'deleted_at', ]; } 在這邊我主要是先建立一個 Member.php 的 model 這裡有些...

[Jenkins] 安裝 Jenkins 與Laravel在jenkins上執行測試

圖片
安裝 我這邊使用 docker 作為快速建置的方式 可以使用  https://hub.docker.com/repository/docker/neilwangtw/jenkins-php72 此為環境 PHP7.2 且 最新的 jenkins 詳細的 Dockerfile 與 docker-compose.yml 在這 https://github.com/qazwsxedccsqzse/jenkins-php72 使用方式就是先建立個目錄 /data/jenkins 接著進去裡面將 docker-compose.yml 啟起來 docker-compose up -d jenkins 預設是使用 8080 port 接下來就是去 web 介面設定 一開始在 /data/jenkins/secrets/initialAdminPassword 會有一組 hash 是拿來解鎖 Jenkins 的 輸入完之後 一開始可以先安裝 jenkins 推薦的 plugin 有額外需要的之後可以再裝! 到這邊就設定完了 從 bitbucket 上取得 repo 1. 先透過 docker 產生一組 ssh 的金鑰 # docker exec -it {jenkins docker id} bash # su jenkins $ cd ~ $ ssh-keygen 這時候就金鑰就會在實體主機的 /data/jenkins/.ssh 公鑰: /data/jenkins/.ssh/id_rsa.pub 私鑰: /data/jenkins/.ssh/id_rsa 註: 如果遇到權限問題,可以先把 /data/jenkins 的權限設定到 777 或是先在 docker 內部產生一個檔案,看一下對應實體主機, 所產生的 user 與 group 為何,我自己這邊產生的是 tss:kvm 2. 先設定用來可以存取 bitbucket 的密鑰  在 Repository Settings 內有 Access keys 或是直接到 https://bitbucket.org/組織/專案名稱/admin/access-keys/ 去新增 jenkins 的 ssh 公鑰 這個設定完就代表 jenkins 這個用戶可...

[Laravel] 如何自己做套件

圖片
剛好最近公司內部有提需求,希望我自己可以把一些功能包成套件 這樣後面的人需要的話,就可以直接掛在 vendors 底下 就不需要重工了! 有鑑於此,我去看了一下 官方文件 ,好像沒有寫得很清楚 如果有人看到官方哪邊有提供,可以在底下回覆我,我會非常感謝QQ 於是乎,我跟著別人寫好的文章 1. 可以先產一個 laravel 的專案,或是用原有的專案都行,目的只是可以用指令產一些需要的檔案,比較方便 composer composer create-project laravel/laravel TestPackage 2. 在這個專案內新增一個 packages 的目錄,存放要做的套件,我這裡用 neil/text2address 當範例,先建立目錄之後,執行 composer init,初始化套件 mkdir -p packages/neil/text2address && composer init composer 範例可能會像下面 { "name": "neil/text2address", "description": "Translate text to address component of google", "license": "MIT", "authors": [ { "name": "Neil", "email": "neil@test.com" } ], "minimum-stability": "dev", "require": { "php": "^7.1", "illuminate/support": "~5.4|~6.0" }, "autoload...

[Laravel] 讓你的 Helper 更有彈性 (使用 facades)

在 Laravel 中,有些常使用的 class 像是: Cache 在進行單元測試的時候,因為 Cache 本身繼承 Facade 所以可以很容易地在單元測試中 mock Cache ex: Cache::shouldReceive('get') ->once() ->with('key') ->andReturn('value'); 如果像是我們自己實作的 Helper,也想要在靜態類別也可以有 mockery 的 shouldReceive 該如何實作? 官方文件有提到可以使用 Facades 舉我們自己建立的 HttpHelper 為例 1. 建立 HttpHelper class <?php namespace App\Helpers; use GuzzleHttp\Client; use GuzzleHttp\Exception\RequestException; use Illuminate\Http\Request; class HttpHelper { // ... 功能略 } 2. 建立 Provider,並且將 HttpHelper 綁定到這個 HttpServiceProvider php artisan make:provider HttpServiceProvider <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Illuminate\Support\Facades\App; class HttpHelperServiceProvider extends ServiceProvider { public function boot() { } /** * Register the application services. * * @return void */ public function register() { App::bind('Ht...

[PHP] Lumen 沒有 php artisan serve 但又想要有類似的功能怎辦?

來源: https://stackoverflow.com/questions/47385324/laravel-controller-error-when-using-request-in-function 解法: php -S 127.0.0.1:8000 -t ./public

laravel 5.4 所需環境指令

主機環境: apt-get update && apt-get install -y git echo "* soft nofile 64000" >> /etc/security/limits.conf echo "* hard nofile 64000" >> /etc/security/limits.conf echo "root hard nofile 64000" >> /etc/security/limits.conf echo "root hard nofile 64000" >> /etc/security/limits.conf echo "session required pam_limits.so" >> /etc/pam.d/common-session echo "session required pam_limits.so" >> /etc/pam.d/common-session-noninteractive echo "ulimit -HSn 64000" >> /etc/profile apt-get install -y imagemagick libmagickwand-dev libmagickcore-dev add-apt-repository ppa:ondrej/php && apt-get update apt-get install -y php5.6 \ php5.6-xml \ php5.6-dev \ php5.6-fpm \ php5.6-mysql \ php5.6-mbstring \ php5.6-curl \ php5.6-gd \ php-imagick \ php-redis \ php-memcache apt-get install nginx # 將php5.6-fpm內的設定修改 listen = 127.0.0.1:9000 vi /etc/php/5.6/fpm/pool.d/www.conf sud...

laravel migration

首先先去 app/config/database.php設定所要使用的資料庫相關資料