それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

php

laravel のmodel を 外部から使う

php

laravel の Eloquent のモデルを別のプロジェクトからぱぱっと使う。 Consoleとかあるし、API作れば実現はできる。でも既存のものと組み合わせるときは、DBを直接書き換えたほうが早い時がある。 本当はプロジェクトの外部から直接触るのは良くないと思うし…

laravel のマイグレーションで特定のmigration のファイル名指定して、一つだけ再度・何度も実行したい

laravel でmigrate するとき、特定のファイルだけを実行したい migrate refresh とかだと全部のテーブルが再生成されちゃうので、別のテーブルデータを消さずに特定のテーブルだけを再構築したい。 サンプル 指定したマイグレーションのファイルだけを実行す…

phpでOSの判定をする組み込み変数

php

php で実行環境をチェックするには PHP_OS という、ウルトラ素晴らしい定数が、最初から組み込まれています。

if 文には必ずブロックをつけろと言われることが多いけど、使い方によってはむしろ邪魔

if にブロックがないと叱られたことが昔から多い。 if のブロックって上手に書けばいいと思うし、設定やLintで矯正されたりするんだけどさ。 この if の書き方を見ほしい function setupAce(e, set){ //デフォルト設定(カスタマイズしたい場合はの引数(set)…

laravel の api ルートを叩いてもloginページやHTMLが帰ってきてjson以外になってしまう場合

TL;DR HTTPリクエストのヘッダに、 Accept: text/json が抜けている可能性が高い。 Laravelのレスポンスが login になる場合。 api で auth を入れているところへリクエスト投げつける。 HTMLのログインが帰ってくる。 実例 curl -H 'Content-Type: applicat…

composer でgithub / gitlab などのgit レポジトリをコマンドから指定してインストール

php/composer でコマンドから git レポジトリをインストールしたい。 composer で git のレポジトリ(非公式 package / 自作pkg )を指定して追加して使いたい。 通常は composer.json を編集するのだろうけど、 jsonの手作業の編集は、苦痛。 なので、コマ…

PHP Fatal error: Uncaught ErrorException: preg_replace(): JIT compilation failed: になる。

php

macOS でphp7.3 を homebrew で入れた場合に発生します。 ほんと、もうphpは。。。brew にちゃんとしたコンパイル設定を送ってよね。 PHP Fatal error: Uncaught ErrorException: preg_replace(): JIT compilation failed: no more memory in phar:///usr/lo…

php/php-cliでプロジェクト単位(ディレクトリ単位)の設定を.user.iniで読み込ませる。

php

php でプロジェクト単位の設定を使いたい php には、ディレクトリ単位で php の設定を変更する user.ini という特殊なファイルを使うことができる。 イメージとしては .htaccess のようなものでディレクトリに設置することでディレクトリ単位でphpの挙動を変…

uwsgi で php を動かす - phpの複数バージョン起動のためにuwsgi-plugin-php をインストールして使う

php

uwsgi にphp プラグインがあります。 uwsgi とはPythonのイメージですが、php-fpm の代わりに使えます。(多分使うことは殆ど無いだろうけど) uwsgi で管理するメリット docker のイメージを作るときに php-fpmが混ざると共通化されないけど、uwsgi だとあ…

php composer intall で github rate Limitと言われたときの対処方法

php

composer install ができなくて詰んだ composer instal しようとしたら次のエラーが Could not fetch ~, please create a GitHub OAuth token to go over the API rate limit GitHub OAuth token to go over the API rate limit のエラーはfetch の上限に掛…

php で JSONのエラーチェックをする,json_last_error

php

JSON が正しい形式かどうかチェックする APIで受け取ったときに、リクエストパラメータの代わりに JSONを受け取るので、JSONの型式をチェックしないといけない。 こういうときに json_last_error() を使えばエラー内容がある程度は見れるようになっている。 …

brew で php のインストール(homebrew/php/喪失以降)とモジュール(xdebug)のインストール

phpを brew で入れようとしたら、エラー Homebrew/php (deprecated) です。 世の中の brew install で書かれた意識高いPHP'erのゴミ記事が役に立たなくなりました。 どうするのか? php はtapから本家に戻りました。なので、以下の通りで十分です。 brew ins…

phpで指定した日付の範囲を作り月末にも対応させる

php

php の日付範囲を求めるにはDatePeriodを使うと便利 DatePeriod にスタートと、終了、そして間隔を追加すると日付範囲のオブジェクトが出来る。 = 5.3.0, PHP 7) DatePeriod implements Traversable { DatePeriodは Traversable なので、foreach などに入る…

LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う

php

# LaravelのPHPStorm/IntelliJ IDEA でphpのデバッグ(xdebug)をビルトインサーバーで行う laravel をxdebug でデバッグする、やり方はいっぱいある。 いっぱいあるのに、ネットに情報が殆どないので。さすがphper といったところか Xdebugデバッグをする。 a…

laravel で phpunitのテスト実行時に、PhpStormからXdebugを有効にする。user.iniを有効にして実行

xdebug を有効にしてphpunitを実行したい。 Xdebug の設定をしたとしても、phpunit の設定だとか、xdebugや日付などの php.iniを作るのが不便。 プロジェクトを切り替える毎に、php.iniを見直すのは割と面倒くさい。 phpには user.iniがある php には実行時…

php7で拡張機能のAPIが変わって動かなくなってる pamをなんとかした

php

php 7 で pamモジュールが動かなかった。 install してもPHPのPAMが動かなかったんですね。 PHPのC言語APIが変わってた コンパイルエラーなので、調べていくと型宣言辺で落ちてた。 調べていくと、拡張機能のAPIが更新されてたことがわかったなど この方法で…

WEBユーザのログイン認証をssh経由でやる、割と強引な方法

認証面倒くさい。 LDAPで連携くんだり、PAMで認証したり、OAuthしたり、ユーザ認証をする方法は山ほどある。 でも、それぞれ一長一短があってそれらを解決するいい方法がほしいと思っていた。 WEBのユーザのログイン認証をSSHでやる ひょんなことから、sshpa…

php-fpm で php.iniの設定渡す/display_errorsなどをPHP_VALUEで設定する。

PHP_FLAGを使いたい。 apache の mod_php や apacheの fcgiなら簡単にできるんだけど、nginxだとfcgiでどうやって 初期設定を渡したら良いんだろうか。 こうすれば出来る。 fastcgi_param PHP_FLAG "display_errors=on \n display_startup_errors=on"; fastc…

phpで別アプリへのセッション受け渡し

php

php から別のアプリへセッションを受け渡したい 認証済みのセッションキーを、別のアプリへ受け渡ししたい。今回は mp4 と vlc でテストした。 渡す時

vimでphp.iniの設定ファイルを開くときのハイライトさせるファイルタイプ設定

php

vim で iniファイルのハイライト ini ファイルは dosini という名前でデフォルト登録されている。 :set ft=dosini モードラインを書いておく。 ファイルの1行目に書いておけば、モードラインとして設定を拾ってくれるので多少ファイルの中身とファイルの拡…

php のエルビス演算子を初期化以外の用途で使ったら・・・

php

エルビス演算子が便利だけど。 三項演算子の省略形 elbis operator が便利だけど int(10) //} 変数初期化チェックがシンプルになって嬉しいよね。empty 相当だよねーってウキウキして empty の代わりの使ってみたり。 三項演算子を省略する使うとちょっとね…

pdoで文字化けを防ぐutf-8を設定する

php

php で MySQL(mariaDB)にアクセスすると文字化けをする いまどき文字化けするなんて思わなかった。古いデータベースだし mysql 関数でやってるやつだからなぁ set name しなくても PDO のドライバの初期化のタイミングで文字コードを指定できるようになって…

php7 で非推奨になったmysql_connect関連のmysql関数を対応する(mysqli

php

php7 から mysql_connect が非サポートになりました。 いまどきPDO使ってないとかありえないんですけど。まぁmysql_connect を使ってるプログラムが動いてることも多いわけです。 今回はこの対応をしたので、誰かの役に立てばいいのでメモっておきます。 mys…

DBアクセス抽象化で、INSERT と UPDATE でコードを共通化させるハック。

php

困りごと: INSERT と UPDATE の共通化をしたい。 似たようなコードを何度も書くのはめんどくさい。テーブル定義が変わったときにもう鬱陶しい。 共通化したい・・・ function insert( name , date ){ sql = "INSERT INTO table_name VALUES( #{name} , #{da…

phpのリクエストパラメータをサクっと処理する

php

phpのリクエストを読むのに、ブラケットがめんどくさい ブラケット書くのがめんどくさい 此の記述がもはや狂気。

php で終了しないプログラムを書く

php

php はホスティングなどのリソースを上手に扱う関係上、実行時間が限られてる。 なので、終了しない無限ループをキックしようと思うとこんな感じなる。 #!/usr/bin/env php

php のフォークと強制終了

php

単純なフォーク

PHP imagick でPDFからJPEG画像をDPI指定で取り出す

php

imagick で jpg 変換すると画質が悪い ぱぱっとPDFをJPEGにしようとすると、とても画質が悪い density オプションを付けたい convert コマンドで与えるようなオプションを渡すにはどうすればいいのか。 setOption でDPIを渡す setOption('density',400 ); $i…

php imagick でページ指定を簡略化して pdf を高速に処理する

php

ruby で出来たので、php でもできるかなと思って調べてみたら。 readImage('myfile.pdf[0]'); $imagick = $imagick->flattenImages(); $imagick->writeImage('pageone.jpg'); ?> php のマニュアルにバッチリなコードが書いてあった。 でも動かすの大変だった…

php の realpath ってファイルチェックも兼ねてた

php

realpath を何となく眺めていると。 ファイルが存在しない時は false を返すと書いてある。え、そうなのか。当たり前だけど、気づいてなかった realpath() returns FALSE on failure, e.g. if the file does not exist. file_exists した後に、realpath で整…