【DataTables】独自の検索機能を追加する

Webサービスを構築する際に、通常のサービスとは別に管理画面が必要になる場合があります。 管理画面は利用者が限られていますので、派手でインタラクティブである必要はありません。 しかし、使いやすく見やすい管理画面は、本サービスとは違うベクトルで作…

【PHP】冗長化されたサーバーでどちらのサーバーのアプリケーションが実行されているか確認する

php

小ネタですが。 冗長化されたサーバーだと今アクセスしているサーバーがどちらか知りたいときがあります。 その場合、SERVER_ADDRで現在のスクリプトが実行されているサーバーの IP アドレスを表示する事ができます。 $_SERVER['SERVER_ADDR'] https://www.p…

【Laravel】ルートが解決出来ないエラーの対処法

2020年になりましたね。 今年も皆さんに良い年でありますように。 さて、 複数人でサービスを運用していると、別の方の作業をマージした事で新しい問題が発覚するケースがあります。 その場合、過去の変更前に戻して環境を戻して原因究明をする事もあります…

【Git】開発環境から一部の機能だけリリースする手順

git

師走ですね。 皆様年末に向けて追い込みをかけている時期でしょうか? 開発が込み入ってくると、バージョン管理も複雑になって来ます。 例えば、サービスの運用をしていて複数の機能を実装していると、リリースのタイミングがズレるなんて事はないでしょうか…

【PHP】【Laravel】静的関数で自分のグローバル変数(関数)を取得する方法

小ネタです。 アプリケーションを作成していると、静的関数(static function)からグローバル変数を使いたい時があります。 今回は、Laravelで自身のテーブル名を取得する方法を使って説明します。 動的関数の場合 通常の関数であれば$this->(変数名)で取得…

【Laravel】モデルに判定用の関数を追加してチェーンメソッドで呼び出す

指定したモデルで管理しているパラメータによって処理を変えたい時があります。 判定に使用するパラメータがbool型であれば、trueかfalseなので特に迷うことはありません。 しかし、int型で複数の状態を管理する場合があります。 int型でパラメータを管理す…

【Amazon SES】SESでメール送信する時に知っておきたい事

Amazon SES(以下、SES)は、メールサーバーにする事が出来ます。 SESに登録したドメインすれば、直接メールを送信することが可能なので、メールサーバーを用意する必要がありません。 (もちろん、要件によってはEC2でメールサーバーを構築したり、AWS以外の…

【AWS EC2】インスタンスに仮装メモリを作る

EC2でサーバーを運用しているのですが、最近メモリ使用率がいっぱいになってしまいアプリケーションが動かないという事がありました。 情報を集めていると、擬似的にメモリを作ってスワップさせる方法に行き着きました。 さて、 今回はEC2インスタンスに仮装…

【Laravel】Requestクラスのルールを動的に変える

フォームを実装していると、下記のように選択状況に応じてバリデーションをするかしないか決めたい時があります。 必須入力の有無であれば、required_ifで対象のinput値を参照して切り替える事が可能です。 readouble.com しかし、日付データを比較するaftte…

【php】DateTimeとstrtotimeを使って特定の時間だったら日時を戻す方法

php

一日のリセット時間が夜の毎日0時であれば特に問題ないのですが、特定の時間にリセットする場合比較方法が少し複雑になります。 例えば、毎日3時にリセットされる場合、次のような方法で比較する事ができます。 format('Y-m-d') . ' ' . $resetTime); // 現…

【Larael】Middlewareで直接Viewを表示する

全てのページで同じような処理を行う場合、各コントロールの__constructに実装するより、Middlewareとして実装した方が便利です。 Middlewareを使えば、値を追加したり、コントローラの処理をする前にリダイレクトさせる事が可能です。 今回は、リダイレクト…

【javascript】押されたボタンから先祖の要素を取得する

プレーンなjavascriptで、押されたボタンを基準に同じグループ内の特定の要素を取得する方法。 とても初歩的ですが、久しぶりにプレーンなjsを触ると忘れているので備忘録として。 See the Pen parent selecter by shibainu (@websandbag) on CodePen.

【Laravel】保存・更新時に特定のカラムを自動で暗号化(復号化)させる

システムを実装する上で、個人情報の暗号化は必ず対応すべき事です。 Laravelの場合、エンクリプタが用意されていますので処理自体は非常に簡単です。 readouble.com しかし、ルートやキー毎に手動で暗号化と復号化処理を入れるのは手間です。 さて、 今回は…

【Laravel】ナビゲーションに現在見ているページの位置情報を反映させる

現在ページの位置情報をフロントに反映させるという場面があります。 現在のURLを取得して解析する事自体は、jsでもphpでも可能なのですが、処理の記述が長くなってしまいがちです。 パンくずであれば、laravel-breadcrumbsというライブラリがあります。 pac…

【Laravel】envファイルの設定値に半角スペースを入れる方法

Laravelの.envファイル内で半角スペースを入れたい場合の対応方法です。 状況 アプリケーションの名前に該当するAPP_NAMEに下記のように設定しました。 APP_NAME=テスト タイトル view内で、次のようにh1にAPP_NAMEの設定値を表示できるようにします。 <h1>{{ co</h1>…

【Laravel】Laravel 5.7以降の未認証ユーザーのリダイレクト実装方法

2018年9月にリリースした5.7以降、Laravelの未認証時のリダイレクトを実装する方法が変わりました。 バージョン5.6以前は、app/Exceptions/Handler.phpのunauthenticated関数を使っており、最近でもその方法で解説する記事も多いです。 今回は、5.7以降の実…

【pug】【Laravel】laravel-mix-pugのタグ属性にPHPの処理を入れる

テンプレートエンジンにpug(jade)を使う場合、テンプレートのタグ属性にPHPの処理を入れるのにコツがいります。 環境 pugテンプレートのコンパイルはwebpackに任せます。 Laravelのプロジェクトを作るとデフォルトでlaravel-mix.jsと言うwebpackの設定ファイ…

【Composer】【Laravel】Laravelのプロジェクトディレクトリ内に独自クラスファイルを追加する方法

Laravelの機能やPHPの組み合わせれば大概の機能は実装できますし、Laravel側で仕様が決まっているので綺麗にかけます。 しかし、時には再現できない機能を実現するために自分でクラスを書いて追加したい時があります。 Laravelの場合、php artisanで関連する…

【Laravel】 5.8系にアップデートしてマイグレーションファイルを自動生成する時に注意する事

久しぶりにLaravelで新しいプロジェクトを作ったのですが、migrateの仕様が変わった部分があったので記事にしてみます。 環境 種類 バージョン laravel 5.8 migrate:modelでマイグレーションファイルも一緒に作った時の挙動について モデルを作成と一緒にマ…

【Amazon ECR】自作したコンテナイメージをAmazon Elastic Container Registryで管理する

開発環境の構築でコンテナを組み合わせて使うことが多いのですが、実際の確認環境にも使用してみようと考えてみました。 今回はAWSの環境にDockerでコンテナを管理する構成をしてみようと思います。 その際に、コンテナの管理をAmazon Elastic Container Reg…

【Docker】LaravelでMySQL8.0を使う

以前、LaravelのMySQL8.0はサポートしていないという記事を書きました。 blog.websandbag.com 2019年6月現在でも状況は同じようです。 認証方式がcaching_sha2_passwordが対応していないのが原因です。 PDOException::("PDO::__construct(): The server requ…

【Docker】MySQLイメージで初期投入するデータベースとアカウントを変更する方法

Webアプリケーションの環境構築する場合、データベースのコンテナとしてはMySQLのイメージを使う事があります。 hub.docker.com MySQLのイメージからコンテナを作る場合、docker-compose.ymlのenviromentを設定すれば、データベースとアカウントを初期投入す…

【Docker】MySQLコンテナで使用するイメージを5系から8系に変える時の注意

MySQLのイメージを5.7と8.0に切り替えた所、MySQLのコンテナが起動できないエラーが発生しましたので、その時の対処方法を記載します。 おそらく、稼働中にMySQLのバージョンを5系からアップグレードしたい場合でも発生する可能性があります。 状況 下記の様…

【Redmine】CentOS7のサーバーにRedmineを導入する(Nginx+Unicron+MySQL)

プロジェクト管理をツールを検討すると、Redmineの名前はよく上がります。 redmine.jp 同じようなサービスにBacklogやAsanaのようなツールがあります。 しかし、無償だけでは不十分だったり、機能を追加しようとすると維持費が割と高いのが悩ましい所です。 …

「NFCでICカード読み込むってどう言うこと?」ってなったので調べてみた

確定申告のために、PaSoRiを購入された方もおられるのではないでしょうか? あれを他の事にも利用できないかと考えたことは無いでしょうか? ソニー SONY 非接触ICカードリーダー/ライター PaSoRi RC-S380出版社/メーカー: ソニー(SONY)発売日: 2012/10/10メ…

【Unity】シーン再読み込み時にDirectionalLightが効かなくなるバグを回避する方法

久しぶりにUnityを触るので復習がてら公式のチュートリアルをやってみました。 その際、シーンを再読み込みするとDirectionalLightが効かない状態になるバグに遭遇しました。 バグの解決方法を載せます。 状況 公式のチュートリアルを参考に勧めましたので、…

【Webフォント】はてなブログにAdobe FontsのWebフォントを適用する

前回投稿したWebフォントの応用になりますが、はてなブログにもWebフォントを追加する事が可能です。 blog.websandbag.com ドメインやページビュー数の縛りが無くなったので、気兼ねなく使えます。 今回は、テーマ本体のスタイルはそのままにして、フォント…

【Webフォント】Adobe Fontsで提供されているフォントをページに適用する方法

最近は、Webフォントありきのウェブサイトも多くなってきました。 以前は、デザイン上、デバイスフォントではない場所を画像文字で代用する事がよくありましたが、alt属性をつける必要があったり、文字サイズの変更に耐えられなかったりコーディング側の負荷…

【GooglePlay】Playゲームのプロフィールを削除してソシャゲの復帰防止

ゲーム依存症は、病気認定されるほど深刻な社会問題になっています。 style.nikkei.com ソシャゲを辞められない原因の一つに、辞め方が複雑というのがあると思います。 ソシャゲに限った話ではありませんが、サービスの辞め方は複雑なものが多く、途中で断念…

【wordpress】【php】WordPress配下外のスクリプトファイルから、WordPressのデータを取得する

WordPress主体のサイトで、WordPressにはない機能を追加したい場合があります。 おそらくですが… 固定ページやテーマのfunction.php等を駆使すれば、大概のアプリケーションは作成できます。 しかし、組み込む事で難易度が上がったり、保守性が落ちる事が考…

©︎2017-2018 WebSandBag