Warning: Declaration of FeedWordPie_Item::get_id($hash = false) should be compatible with SimplePie_Item::get_id($hash = false, $fn = 'md5') in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpie_item.class.php on line 0

Warning: Declaration of FeedWordPress_Parser::parse(&$data, $encoding) should be compatible with SimplePie_Parser::parse(&$data, $encoding, $url = '') in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpress_parser.class.php on line 0

Warning: Cannot modify header information - headers already sent by (output started at /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-content/plugins/feedwordpress/feedwordpie_item.class.php:0) in /home/nekyo/nekyo.wp.xdomain.jp/public_html/wp-includes/feed-rss2.php on line 8
Laravel – 日々のできごと http://nekyo.wp.xdomain.jp きがついたこと、みたこと、やったこと、かんじたこと Tue, 06 Feb 2018 04:49:15 +0000 ja hourly 1 Laravel 権限追加 http://nekyo.wp.xdomain.jp/2017/12/08/laravel-%e6%a8%a9%e9%99%90%e8%bf%bd%e5%8a%a0/ http://nekyo.wp.xdomain.jp/2017/12/08/laravel-%e6%a8%a9%e9%99%90%e8%bf%bd%e5%8a%a0/#respond Fri, 08 Dec 2017 08:01:10 +0000 http://nekyo.wp.xdomain.jp/?p=2150 続きを読む Laravel 権限追加 ]]>

$ php artisan make:migration modify_users_admin_column

これで空のマイグレーションファイルを作ってから、それを編集してフィールドを追記する。
database/migrations/YYYY_MM_DD_HHIISS_modify_users_admin_column.php

public function up()
    {
+        Schema::table('users', function ($table) {
+            $table->boolean('role')->default(0)->after('remember_token');
+        });
    }

app/User.php に追加した権限に対応する処理を追加する。

class User extends Authenticatable
{
      :
+    /**
+     * 管理者か?
+     * @return bool true:管理者
+     */
+    public function isAdmin()
+    {
+        return $this->role == 1;
+    }
}

ポリシーの設定

モデル依存の場合は個別にPolicyファイルを作るが、全体の場合は、app/Providers/AuthServithProvider.php の boot() に直接記述する。
app/Providers/AuthServiceProvider.php

- use Illuminate\Support\Facades\Gate;
    :
-   public function boot()
-   {
-       parent::registerPolicies();

+ use Illuminate\Contracts\Auth\Access\Gate;
    :
+   public function boot(Gate $gate)
+   {
+       parent::registerPolicies($gate);
+
+       // user
+       $gate->define('user', function($user) {
+           return true;
+       });
+
+       // admin
+       $gate->define('admin', function($user) {
+           return $user->isAdmin() ? true : false;
+       });
    }

これで blade 内で

@can('admin')
   :
@endcan

で制御できるようになる。

]]>
http://nekyo.wp.xdomain.jp/2017/12/08/laravel-%e6%a8%a9%e9%99%90%e8%bf%bd%e5%8a%a0/feed/ 0
Laravel メアド以外でログインしたい http://nekyo.wp.xdomain.jp/2017/12/08/laravel-%e3%83%a1%e3%82%a2%e3%83%89%e4%bb%a5%e5%a4%96%e3%81%a7%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%97%e3%81%9f%e3%81%84/ http://nekyo.wp.xdomain.jp/2017/12/08/laravel-%e3%83%a1%e3%82%a2%e3%83%89%e4%bb%a5%e5%a4%96%e3%81%a7%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%97%e3%81%9f%e3%81%84/#respond Fri, 08 Dec 2017 05:22:05 +0000 http://nekyo.wp.xdomain.jp/?p=2148 Qiitaに移動

]]>
http://nekyo.wp.xdomain.jp/2017/12/08/laravel-%e3%83%a1%e3%82%a2%e3%83%89%e4%bb%a5%e5%a4%96%e3%81%a7%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%97%e3%81%9f%e3%81%84/feed/ 0
Laravelとか http://nekyo.wp.xdomain.jp/2017/12/08/laravel%e3%81%a8%e3%81%8b/ http://nekyo.wp.xdomain.jp/2017/12/08/laravel%e3%81%a8%e3%81%8b/#respond Fri, 08 Dec 2017 02:14:57 +0000 http://nekyo.wp.xdomain.jp/?p=2145 続きを読む Laravelとか ]]> Laravel環境構築

Composer インストール

$ curl -sS https://getcomposer.org/installer | php
$ mv composer.phar /usr/local/bin/composer
$ composer self-update

laravelインストール

$ composer global require "laravel/installer"

プロジェクト作成(インストールバージョンを指定したい場合は –prefer-dist を使う)

$ composer create-project laravel/laravel プロジェクト名
$ composer create-project laravel/laravel プロジェクト名 --prefer-dist 5.4

Packagist

Composer でインストールできるパッケージのリポジトリ
https://packagist.org/

日本語化

インストールしても日本語化しなきゃいけない。ここら辺を使えば良さそう

$ composer global require laravel-ja/comja5
$ comja5 -a
$ /home/XXX/.config/composer/vendor/laravel-ja/comja5/bin/comja5 -a パスが効いていなかったらフルパスで実行

参照:https://github.com/laravel-ja/comja5

デバッグバーを使用する方法

インストールしても日本語化しなきゃいけない。ここら辺を使えば良さそう

$ composer require barryvdh/laravel-debugbar

.env で APP_DEBUG=true にする。

ユーザー管理

〇が付いているのは入れてみたもの。

リポジトリ 名前 説明
backpack/permissionmanager backpackを使ったユーザー管理 ユーザー管理以外の管理画面も入ってしまう| 
jeremykenedy/laravel-users ユーザー管理 ユーザー情報のCRUD。 権限不要ならこれで十分。 要ローカライズ。 でも結局自作した。
swancreative/laravel-users    
kiwi/laravel5-usermanager ユーザー管理 登録、プロファイル、パスワードの編集/リセット、ログイン、ログアウト
helori/laravel-admin ユーザー管理 管理者権限によるユーザー管理画面追加
highideas/laravel-users-online ユーザーのオンライン状態  
jrean/laravel-user-verification Laravel 5.* のユーザーメール確認
edvinaskrucas/laravel-user-email-verification より簡単なユーザーメール確認 Laravel5.5ではエラーが出る。※1
bican/roles 役割と権限を処理するパッケージ
mressex/laravel-auth-profile プロフィール メールアドレス編集はない
berkayoztunc/laravel-profile プロフィール メアド編集はあるが画面が多い
werneckbh/profile プロフィール 名前、メアド、パスワード、アイコン(Gravater)、削除が可能。 でも結局自作した。

※1

Trait 'Illuminate\Console\AppNamespaceDetectorTrait' not found

のエラーが出たら、該当するソースを開いて以下の様に修正する。

- use Illuminate\Console\AppNamespaceDetectorTrait;
+ use Illuminate\Console\DetectsApplicationNamespace;

モジュール化

リポジトリ 説明
nwidart/laravel-modules AsgardCMSで使用されている
caffeinated/modules  
pingpong/modules nwidart/laravel-modulesのベース

CMS

CMSを使うとそちらに引っ張られるので自前でサービスを組む場合は注意が必要

リポジトリ 名前 説明
october/october October CMS ここら辺を参考に https://qiita.com/pikanji/items/ac05bbfbab955bf7fc5b
lavalite/cms Lavalite CMS  
pyrocms/pyrocms    
asgardcmd/platform AsgardCMS Laravel 5 で構築された、モジューラー、多言語CMSで MITライセンス付き
graham-compbell/bootstrap-cms Bootstrap CMS  
typicms/base Multilingual CMS  
web-feet/coastercms Coaster CMS
orchid/cms    

PDF

リポジトリ 名前 説明
barryvdh/laravel-dompdf dompdf laravel pdf でググるとこれが出てくる 参考 html形式?
vsmoraes/laravel-pdf dompdf  
niklasravnsborg/laravel-pdf mPDF mPDFは問題があるらしい
elibyy/tcpdf-laravel tcpdf  
tecnickcom/tcpdf tcpdf laravel tcpdf でググると出てくるのはこっち 参考1参考2
setasign/fpdi fpdi ↑tcpdf を使うにはこれも必要
setasign/fpdi-tcpdf fpdi-tcpdf ↑tcpdf を使うにはこれも必要

IPAフォントのインストール 設定方法はこれ
CentOS

$ sudo yum -y install ipa-gothic-fonts ipa-mincho-fonts ipa-pgothic-fonts ipa-pmincho-fonts

Debian系

$ apt-get install fonts-ipafont-gothic fonts-ipafont-mincho
$ php vender/tecnickcom/tcpdf/tools/tcpdf_addfont.php -b -t TrueTypeUnicode -f 32 -i /usr/share/fonts/opentype/ipafont-gothic/ipag.ttf

CRUD

リポジトリ 名前 説明
appzcoder/crud-generator CRUD作成 appzcoder/laravel-admin laravel管理画面も良さそう
infyomlabs/laravel-generator 管理画面もあるCRUD作成
dog-ears/crud-d-scaffold 一覧画面とかも作成できるスカフォールド 作者は日本人 Qiita 上手く動かなかった

未検証もあり

リポジトリ 説明 補足
xethron/migrations-generator データベースから migration 作成
laracasts/generators リソース、移行、モデルなどを迅速に生成 make:migration:schema, make:migration:pivot, make:seed を追加
jenssegers/mongodb MongoDBベースのEloquentモデルとクエリビルダー  
fideloper/proxy 信頼できるプロキシを設定 TrustedProxyはLaravel5.5に 含まれている。設定方法
backpack/crud 管理インターフェースをすばやく作成 商業用には39ユーロ必要
nilportugues/laravel5-json-api JSON APIトランスパッケージ
flugger/laravel-responder APIレスポンス作成パッケージ
spatie/laravel-menu HTMLメニュージェネレータ
igaster/laravel-theme テーマ
viacreative/sudo-su 他ユーザでログイン
usmanhalalit/laracsv CSV出力
schuppo/password-strength パスワード強度
intervention/validation 追加バリデーション関数
hyn/multi-tenant マルチテナント  
hesto/multi-auth マルチAuth  
lynsarmy/csv-seeder CSVでSeederできる
crocodicstudio/crudbooster CRUDブースター  
chrisbjr/api-guard APIを認証する
yab/laracogs さまざまなコマンド、サービス、ファサード、定型文を使用  
talyssonoc/react-laravel ReactJS
spatie/laravel-paginateroute ページネータ
sebastiaanluca/laravel-helpers PHPとLaravel固有のヘルパーの広範セット
propaganistas/laravel -fakeid Eloquentモデルの自動ID難読化
mnabialek/laravel-sql-logger SQLロガー
marcelgwerder/laravel-api-handler REST-APIのためのヘルパー関数
francescomalatesta/laravel-api-boilerplate-jwt すぐ使用できるREST APIを作成するAPIボイラープレート
crestapps/laravel-code-generator クリーンなコードジェネレータ
brotzka/laravel-dotenv-editor .envエディタ  
zeeshanu/opus チームのためのナレッジベースオープンソース
user11001/eloquent-model-generator データベースから Eloquentモデル自動生成
meness/verifi 電子メール認証を処理する
libern/qr-code-reader シンプルなPHP QRコードリーダー/デコーダ
codeitnowin/barcode バーコードQRコードジェネレーター
guzzlehttp/guzzle 今時のPHP HTTPクライアントのGuzzleを使ってみた

おまけ

composer高速化

$ composer self-update  バージョンアップする
$ composer config -g repos.packagist composer https://packagist.jp   リポジトリを国内のものにする
$ composer global require hirak/prestissimo   composer高速化用のプラグインを導入する

元に戻すには

$ composer config -g --unset repos.packagist   リポジトリを消す
$ composer remove hirak/prestissimo   composer高速化用のプラグインを削除する

]]>
http://nekyo.wp.xdomain.jp/2017/12/08/laravel%e3%81%a8%e3%81%8b/feed/ 0