Tag laravelを表示しています。
2019.9.22 日
Laravelのプロジェクトを立ち上げるときはLaradockが便利です。Laravel5で使うその他のツールやDBも一通り揃っているので大変便利です。結構頻繁に更新も行われているものなのでちゃんとしているという印象。 Laradockのclone 入手の方法はこれで終わり。適当なディレクトリを作ってcloneするだけです。 $ git clone git@github.com:laradock/laradock.git Laradockの設定 基本的にはenvファイルを作成するだけです。env-exampleを.envにコピーしてから設定をします。これで各アプリケーションやミドルウェアにでデフォルトの設定が完了しました。 $ cd laradock $ cp env-example .e...
2019.9.16 月
php artisan tinkerを実行すると以下のようなエラーで実行できないことがあります。 In Configuration.php line 363: [ErrorException] mkdir(): Permission denied -vvvvをつけて、デバックモードでコマンドを実行してみます。 $ php artisan tinker -vvvv In Configuration.php line 363: [ErrorException] mkdir(): Permission denied Exception trace: Illuminate\Foundation\Bootstrap\HandleExceptions->handleError() at n/a:n...
2019.9.16 月
CentOS7でapacheを動かしている環境です。PHPは7.2.17で動いています。 laravel5でtinkerを実行すると以下のようなエラー(Warning) $ php artisan tinker PHP Warning: Module 'ssh2' already loaded in Unknown on line 0 ssh2が二重に読み込まれているっぽいので、エクステンションの部分を検索してみる。/etcあたりを検索。 $ find ./etc -type f | xargs grep "ssh2.so" ./php.d/ssh2.ini:extension=ssh2.so ./php.d/20-ssh2.ini:extension=ssh2.so どっちかが無駄っぽい気...
2019.8.28 水
人物 × Close ルネサンス期を代表する芸術家であり、「飽くなき探究心」と「尽きることのない独創性」を兼ね備えた人物といい、日本の美術史では「万能の天才」といわれている[1]。史上最高の呼び声高い画家の一人であるとともに、人類史上もっとも多才の呼び声も高い人物である[2]。アメリカ人美術史家ヘレン・ガードナー(英語版)は、レオナルドが関心を持っていた領域分野の広さと深さは空前のもので「レオナルドの知性と性格は超人的、神秘的かつ隔絶的なものである」とした[1]。しかしながらマルコ・ロッシは、レオナルドに関して様々な考察がなされているが、レオナルドのものの見方は神秘的などではなく極めて論理的であり、その実証的手法が時代を遥かに先取りしていたのであるとしている[3]。 1452年4...
2019.3.28 木
maatwebsite/excelっていうパッケージがあってLaravelで開発するぶんには何もしなくてよいです。 https://github.com/Maatwebsite/Laravel-Excel https://packagist.org/packages/maatwebsite/excel インストール インストールします。(2019-03-28現在の最新版は3.1.10でした) php composer.phar require "maatwebsite/excel:~3.1.10" 後述しますが、3系のパッケージは読み込みの機能がなくなったようです。(前回の方々がなんで?って言ってます) ですので、エクセルの読み込み機能が必要なときは2系のパッケージをインストールしないと駄目...
2019.3.20 水
リダイレクトはかなり便利になってます。これはヘルパー関数になるのだと思われ。 普通のリダイレクトはこのような形になります。http://example.com/page/indexにリダイレクトされます。 return redirect('page/index'); https://blog.capilano-fw.com/?p=566
2019.1.2 水
Parse error: syntax error, unexpected '?' in ... PHPのバージョンが古い疑い。php5.3とか使って新しいフレームワーク使おうとしているとか。
2018.12.24 月
Laravelのキャッシュシステムは抜群に使いやすくなっているのでほとんどの場合使うことになると思います。PHPそれ自体でキャッシュを使う場合はroot権限相当で多くの作業が必要なのですが、Laravelはそこらあたりをとても簡単にまとめてくれています。ベンチマークはとっていないので実際速いのかどうかという問題はあるかもしれないですが、比較的小規模なwebアプリの場合はほとんど問題のない速さで使えています。 キャッシュの種類はたくさんあって必要なキャッシュシステムはすべてサポートしています。また裏側のキャッシュシステムがどうあれLaravel上でのキャッシュ扱い方は非常に容易です。 apc PHPのあのキャッシュ array ただ配列にぶっこむだけ Redis う、玄人っぽい(というかちゃん...
2018.12.10 月
コマンドクラスの作成 コマンドのクラスを作成します。 php artisan make:command monitorAppStatus app/Console/Commands/monitorAppStatus.phpが作成されます。 このクラスをartisanで実行するためにはこのクラスファイルの$signatureを書き換えます。 protected $signature = 'command:name'; ↓ protected $signature = 'monitor:app'; これでphp artisan monitor:appで実行できるようになります。 コマンドの中身を作成 コマンドの実際の中身の作成は、このクラスファイルのhandle()部分に書きます。 public ...
2018.11.8 木
とかいうタイトルですが普通にhttpプロトコルでリクエスと投げてレスポンスが返ってくるというだけの話です。RESTという観点で言えば認証のところがちょっとおもしろいというだけです。いわゆるあのRESTFULLでセッションを持たないという考え方です。それ以外は別に特に何も考えなくていいです。 ルーティングとエンドポイント APIのエンドポイントの設定です。 Route::get('/foobar/search/standard', function(){ echo "foobar"; }); “/foobar/search/standard”にアクセスしたら、Laravelはデフォルトで”/api/foobar/search/standard”が...
2018.10.24 水
PHP7でOracleに接続するでPHP7からの接続はできるようになりました。 LaravelでOracleを使うときの具体的な手順を解説します。 パッケージのインストール 必要なパッケージはこれ。 – Packagist: yajra/laravel-oci8 – Github: yajra/laravel-oci8 $ php composer.phar require yajra/laravel-oci8:v5.7.2 どうやらこれだけで動くっぽいです。 Databese接続パラメータの設定 例によってconfig/database.phpに設定します。Oracleはデフォルトで設定項目がない(配列に入っていない)ので自分で追加してあげる必要があります。 'co...
2018.7.2 月
Twitter Appの基本設定 Packagist: themattharris/tmhoauth Github: themattharris/tmhOAuth TwitterのAouth認証でthemattharris/tmhoauthライブラリーを使います。composer.jsonに一行加えてcoomposer updateしておきます。(または、composer require themattharris/tmhoauth)LaravelとかSymfonyとかだったらこれでAutoloadされているのでOKです。プレーンのPHPの場合は自身でrequireしてください。 "require": { ... "themattharris/tmhoauth": "^0.8.4", ......
2018.6.22 金
普通のページでも異常なアクセスをある程度検知してアクセス不可にしておきたいと思って簡易的なもの作りました。 Laravelのログインスロットルをそのまま使ってもよかったのですが、ここではわかりやすくミドルウェアでちょろっと書いた感じです。 基本はリクエストの根っこのところでIPをとって、30秒の間に30回以上のアクセス(だいたい1秒に1回のアクセス)があったら403に飛ばします。コンテンツや好みに応じてパラメータを適当に調整してください。 あと.envで設定するときは、 ## Throttle THROTTLE_KEEP_TERM=0.5 THROTTLE_LIMIT=30 こんな感じで設定も可能です。 Source php artisan make:middleware Throttle ...
2018.6.13 水
複数のor検索 OR検索+あいまい検索で検索ワードが定まっていないときなんかはクロジャーを使ういいっぽい。 use Illuminate\Support\Facades\DB; ... $words = array("ライオン","ゲノム"); $records = DB::table('sometable')->orWhere(function($query) use($words){ foreach ($words as $k=>$word) { $query->orWhere('text', 'like', '%'.$word.'%'); } }) ->orderBy('id','desc') ->get();
2018.5.31 木
Laravel5 共通クラス(汎用関数)をつくるでは比較的少量の場合というか基礎的な考え方みたいなものなので実践ではあまり役に立たない場合が多いかも。大きなアプリケーションになってくるとこれだと全然足りないわけです。 なのでここではサービスプロバイダーとして複数のクラスを一括で共通で扱える方法を紹介します。 HelperServiceProviderの作成 サービスプロバイダーを作成します。 php artisan make:provider HelperServiceProvider 作成したHelperServiceProviderのregisterメソッドを以下のようにします。 public function register() { foreach (glob(app_path()....
2018.5.25 金
Laravelは値をキャッシュしておくことでより高速にレスポンスできるという機能があります。アクセスの度にSQLフル回転みたいなのはあまりよくないので、更新がない限りキャシュから呼ぶのが適当であったりなど使い方はいろいろです。 キャッシュは新規登録・更新・呼び出し・削除といった感じでいわゆるCRUDです。 キャッシュの種類 apc: APC(Alternative PHP Cache)というPHPの中間コードのキャッシュや最適化を行う拡張モジュールを使用します。php.iniでサイズをちょっと大きくしないといけないときもありますので要注意。 array: キャッシュをしない場合の指定になります。(配列に格納されるわけじゃないです。)これを指定しておくとキャッシュを用いる実装コードがあってもエ...
2018.5.14 月
これらのライブラリは普通のプレーンなPHPでも使えるので重宝しますよ。 jenssegers/agent Mobile Detectのラッパーなんですが、Mobile Detectより人気ある感じになっちゃってますか。これ。 https://packagist.org/packages/jenssegers/agent https://github.com/jenssegers/agent monolog/monolog 普通のPHPでも便利。 https://packagist.org/packages/monolog/monolog https://github.com/Seldaek/monolog nesbot/carbon 時間計算は絶対に使うでしょ。だいたいのアプリで。 http...
2018.5.12 土
PHPもセキュリティーがしっかりしてきました。 文字列をハッシュ化する .... use Illuminate\Support\Facades\Hash; .... class someClass { $h = Hash::make("foo"); } 最低限これだけで大丈夫。暗号化したものを保存しておけばよいです。 パスワードを照合 どうしていつの時代になってもパスワードを復号化するって思っている人多いんですかね。 $boolen = Hash::check('foo', $h); 照合できたら1、それ以外は空を返します。 Laravel 5.6 ハッシュ http://www.kaasan.info/archives/3723
2018.5.1 火
いろいろと複雑且つ難しい方法はさておき、 $url = $request->url(); これで純粋にURL取得。 $url = $request->fullUrl(); これでGETクエリまでを含めたすべての値が取得できます。 あとは何か適当に加工すればよいかと。 リクエストの取得
2018.5.1 火
基本的なルーティング Laravelのルーティング書き方まとめ
2018.4.27 金
Laravel5のパスワードの暗号化は、 vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php ここらでやっております。 $hash = password_hash($value, PASSWORD_BCRYPT, [ 'cost' => $this->cost($options), ]); コストをオプションとして設定している感じです。普通です。 昨今のセキュリティー云々のあれでpassword_hash()関数自体がかなり複雑なことになっているので私は解析を諦めました。かつては保存してあるパスワードと入力されたハッシュを比較すれば済むというようなこともなくなり照合自体もpassword_verify(...
2018.4.19 木
config/app.phpを修正。 /* |-------------------------------------------------------------------------- | Application Timezone |-------------------------------------------------------------------------- | | Here you may specify the default timezone for your application, which | will be used by the PHP date and date-time functions. We have gone | ahead an...
2018.4.9 月
Laravel5.5でメール認証登録できるようにする Laravelのデフォルトの認証機能を作成する Laravel5.5でメール認証登録できるようにする 認証テーブルをカスタマイズ 認証テーブルを作成する 認証機能を新しいテーブルに紐付ける Laravelのデフォルトの認証機能を作成する Laravel5でユーザー認証の設定 デフォルトの機能はartisanコマンド一発で作成さきます。 php artisan migrate php artisan make:auth デフォルトのDBテーブルを使って簡単な認証機能を実装できます。 ですが、これだといわゆる一般的なものではなく実在しないメールアドレスなどでも登録できてしいます。 Laravel5.5でメール認証登録できるようにする 通常の会...
2018.4.3 火
事前の準備 項目 値 モデル app/SampleModel.php (namespace: App\SampleModel) テーブル名 sample_models を想定して説明します。(それともApp\Flightがいいですか?) namespace デフォルトの状態であれば、 use App\SampleModel; しておきます。newでもstaticでもそのままクラスが使えます。 通常は以下ぐらいやればこと足ります。 use Illuminate\Http\Request; use App\SampleModel; use Illuminate\Support\Facades\DB; newする $sample_obj= new SampleModel; でOKです。ほんとすごい...
2018.3.17 土
https://readouble.com/laravel/5.5/ja/packages.html
2018.2.19 月
Expected response code 250 but got code "530", with message "530 5.7.1 Authentication required " キャッシュクリアすると治るっぽい。
2018.2.14 水
jQueryのAjaxってたぶん数年後には死んでるらしい。あのFlashのように! Sourceの入手・ダウンロード このソースをまるごとコピペしてsuperagent.jsとリネーム。 https://wzrd.in/standalone/superagent@latest フルパッケージだとGithubがよし。 https://github.com/visionmedia/superagent 普通に使う まずは普通に使う。 <script src="/js/superagent.js"></script> 普通にGETする。 request .get('/') .end(function(err, res){ console.log(res.text);//レス...
2018.2.13 火
PackagistとGithubを使った開発は、もちろん単独で可能ですが、ここではLaravelに組み込むかたちでの開発手順を紹介します。 vendor以下はGit管理から外す Laravelの開発ではvendor以下はcomposerで引っ張り込むのがベストなので、.gitignoreにvendor以下を登録しておくのが前提です。ここの開発保守は他の方々におまかせしてアプリケーションの開発者はcomposerに頼っちゃうというのがベスト・プラクティスとなるかと。 その他の人にお任せしている部分の一部を自分でも開発してしまおうという塩梅になります。 開発のスターター 開発のスタートとしては、vendor以下にGithubのアカウントでこしらえると後々楽です。それから開発ソフト名みたいな感じが...
2018.2.12 月
POSTする際にCSRFトークンを設定していないか、あるいはトークンのセッションが切れたときに出るLaravelのデフォルトのエラーです。 このエラー画面をカスタマイズします。 デフォルトのコントローラは、 vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php vendor/laravel/framework/src/Illuminate/Session/TokenMismatchException.php デフォルトのbladは、 vendor/laravel/framework/src/Illuminate/Foundation/Exceptions/views/419...
2018.2.7 水
画像加工ではこのパッケージが一番人気なんではないでしょうか。 Github Intervention/image Packagist intervention/image インストール composerの実行できるディレクトリ(composer.jsonがおいてあるディレクトリ)で以下を実行してインストールします。 composer require intervention/image 更新されるのは、2ファイルとvendor以下にinterventionがインストールされます。 composer.json composer.lock vendor/intervention 必要なファイルはこれで揃いました。 ProviderとFacadeの追加 そのままでは使えないので、サービスプロバイダ...