haiju's 開発メモ

開発に必要な情報を自分用にメモ

PHP

How to upgrade composer1.x -> 2.x

タイトルは英語だが内容は日本語だw(Φω| Laravel6.xの初心者向けチュートリアルをまとめていて、プロジェクト作成 を実行したら、「バージョンが古いからアップグレードしろや」と警告 されたので、2.xにアップグレードする手順についてまとめる。 [手順] 1…

PHP製WebアプリケーションのSQLインジェクション対策について思うこと

そもそもPHP+Oracleでデータ運用の会社は少ないのかもしれないが、PDOとか LaravelもOracleの方を向いてないのねってのが気になった。 まぁLaravelの場合は、laravel-oci8次第なのはあるけれども。 で、SQLインジェクション対策として有効なのは Prepared S…

PHP不要になると聞いたのでServerless PHPについて軽く調べた

PHP不要の時代が来るって聞いたけど、PHP不要になったら初心者 から玄人までたくさんいるPHPエンジニアはどうなっちゃうの? ってのが気になったので、軽くServerless PHPはどうなんだ?に ついて調べてみたので、軽くまとめておく(Φω| 公式発表から漏れたか…

php.iniの場所を確認するコマンド

OSが変わるたびにphp.iniの場所を覚えきらないので、都度確認するための コマンドを調べた。 [手順] 1. ターミナルで下記コマンドを実行。 $ locate php.ini 2. php.iniの場所が表示されればOK。 (ex)Ubuntu /etc/php/7.2/apache2/php.ini/etc/php/7.2/cli/p…

CodeIgniter3.xで複数のデータベースオブジェクトに接続するには?(同じスキーマ内では作れないのが仕様)

似たようなことをCakePHP2.xでやった記憶はあるが、文化が 違うかもしれないし既に覚えていないので、CodeIgniter3.xで やる方法についてメモしておく。 なお、ドキュメントを読みながら試しているが定義内容は 分かったけど、それは一体どこのファイルに定…

PostgreSQL 10.10で日本語データ以外を修正するとupdateクエリーを実行した先で更新データがずれる問題がある【調査中】

ローカルの開発環境にインストールしたPostgreSQLのロケール を「C」(ロケール未設定/default)にしてインストールした後に、 lc_collateとlc_ctypeをWindows ShiftJIS(Japanese_Japan.932) に上書きして、日本語以外のデータのカラムに対してupdate クエリー…

CodeIgniter3.xでパスワードをハッシュ化するのに、EncryptionクラスとSecurity helperで見解が違ってた

結論として、password_hash()を使うべきと主張している、Encryption クラスの注意書きの方が正しい気がする。 version 4ではSecurity helperのdo_hash()メソッドは廃止されているが、 version 3にはあって、パスワードをSHA1(default)やMD5等、PHPの hash_al…

CodeIgniter3.xのパス関連の定数について

何となくでしか見てなかったけど、APPPATHとかBASEPATH って何だったっけ?と思ったので調べてみた(Φω| 参考にしたサイトにそのまま書いてあるのを見て、そのまま 何も考えずにコピペも何だかなと思うし、単純にフレーム ワークを学習用途で触るだけだと考…

CodeIgniter 3.xでREST API【あとで詳しく】

REST APIのテンプレート実装のため、CodeIgniter界隈で共通 して使われてる?クラスやライブラリなどについて調査中の ものについてまとめる。 REST APIに対応するには、CIControllerじゃなくてREST_Controller とかいうのを継承する必要があるらしい... ほ…

Win10 ProのXAMPP portable(PHP7.3.10)でComposerをインストールできない件【調査中】

CodeIgniter3でREST API対応のテンプレートを作っていて Composerをインストールして関連ツールのインストールを 行おうとしたら、XAMPP portableのopenssl関連でエラー になって数回試したけど先に進めないので、少し調べた ことをメモ的にまとめておく(Φω…

Windows 10 ProにPostgreSQL x64 10.10をインストールしてみたらエラー【解決】

仮の開発環境(XAMPP portable)でRESTとJSON返却に対応した テンプレートをCodeIgniter3で作成するために、チームで使用 することが決まったPostgreSQL x64 ver 10.10のインストール を実行してみたら下記エラーが(ΦωΦ;) インストールには管理者権限が必要と…

Codeigniter3.xでユーザー独自クラスを作成して利用するには?

サンプル用コントローラーの中で、private functionで定義 した各種ユーザー専用チェック関数をライブラリとして 外出しするにはどうするか調べてみた。 結論として独自クラスを、application/librariesの下に配置 して、呼びたいコントローラーのコンストラ…

CodeIgniter3.xでのPHPコーディング規約について

ファイル名はconfig以下のファイルがそうなっていたので、 snakeケース想定でメソッドやファイルを実装していたw(Φω| その辺のチェックなしでマズいと思ったので、改めて調べた ところ、snakeケースで問題なかったみたいだwww 日本語の情報にたどり着けな…

PHPで小数演算を扱うためにBC Math関数の使い方と学習の参考になりそうなサイト

昨日は、PHPで小数点ありの数値を比較/計算するには、 gmp関数やBC Math関数を使うという事実を知って、BC Math関数 を使ってコードを実装していたけど、もう少し詳しく追って いきたいので、学習の参考になりそうなサイトについてメモしていく。 ここで、注…

xampp-portable-windows-x64-7.3.10-1-VC15のPHP7.3.10でGMP関数を使う設定

microtime(true)で経過時間を求める関数を実装していたけど、 詳しい人に聞いたら、floatで経過時間を求めるとミリ秒と timestamp(整数)の間で値のズレが生じるから、組み込みの GMP関数かBC Math関数を使うのがいいと教えてもらった。 え?今までの「microt…

xampp-portable-windows-x64-7.3.9-0-VC15 のPHPでstrtotime()が正しい値を返していない?【調査中】

Windows10でXAMPP portableを利用しローカルにPHP開発環境 を構築しているが、PHP7.3.9でstrtotime()が正しい値を返していない のではないか?疑惑があるので、XAMPPのPHPのバージョン違いで 検証中の件をまとめてみる(Φω| ちなみに、CodeIgniter3.1.11も使…

PHPのdateTimeクラスでPythonのdatetime.timedelta的なことはできないのか?【調査中】

プロトタイプの実装にPHP7.3を利用しているので、date()とstrtotime() じゃなくて、dateTimeクラスを使って現在の時間の0.5秒後を取得しよう としているのだが、0.5の前の「0.」が空白というか切り捨てられて0.5秒が 5秒になってしまう。しかもサンプルに、…

リクエスト内の「X-」で始まる独自ヘッダーを取得するには

通常のリクエストヘッダは$_SERVER['HTTP_REFERER']等で取得できる ので、独自追加したリクエストヘッダーもそういう風な方法で取得できた らforeachで回さなくて楽なのになーと思ったので調べてみた(Φω| [手順] 添字を以下のように直す。 1.「X-」の前にプ…

Windows 10 ProにLaragonをインストールして初回起動してみた(詳細設定はまだ)

万が一、フレームワークがLaravelに途中から変わってもいいように ローカルのPCにLaragonをインストールして初回起動してみたので、 やったことをまとめてみる(Φω| 最新版のLaragonのデフォルトのPHPバージョンが5.xだったの 何気に微妙だった・・・。まぁ…

CodeIgniter3.xのユーザー設定ファイルで1つのキーに対して複数の値を持つには?について、考えた

そもそもPHPの連想配列では、JavaScriptのように1つのkeyに対して 複数のvalueを定義することはできかったような気がする(連想配列の入れ子は 持てるけど)し、CodeIgniter3.xのユーザーカスタムの設定ファイルで想定 されている定義方法は $config['SOME'] =…

XAMPP portableのdate.timezoneをAsia/Tokyoに変更するには?

timestampを制限時間内か判定して超えたらエラーを 表示するためには、date.timezoneを日本時間(Asia/Tokyo) に修正する必要があった!!! というのを思い出してxampp/php/php.iniで修正する項目 について調べて試したので備忘録としてメモる(Φω| [手順] 1…

PHPで日付を取得・比較する方法についてメモ

とある画面から次画面に遷移するアクセス時間に制限を 設けて、規定時間を超えたらエラー画面を表示するような サンプルコードを書くのに必要そうな情報についてメモ しておく(Φω| [参考サイト] tetechi.com wepicks.net onocom.net syncer.jp www.sejuku.n…

CodeIgniter 3.xで外部設定ファイルを読み込むには?

設定ファイルを外部から読むにはどうするか調べて試して みたので、備忘録としてまとめる(Φω| [手順] 1. application/config以下に拡張子が「.php」の設定ファイルを配置。 2. 自動読み込みでautoloadを設定。 3. apacheが起動していたら再起動。 4. Contro…

CodeIgniter3.xでページ間でセッションを利用するには?

CodeIgniter3.xと大雑把に書いてたけど、3系でもバージョンによって 利用できるPHP7のバージョンが違ったり、7自体をサポートしてなかっ たりするらしい。 ちなみにXAMPP portable最新のPHPは7.3.9で7.3がサポートされている のは最新の3.1.11のみという情報…

CodeIgniter3.xでCSRFプロテクション機能を使う

CodeIgniter 4.xも出たけど、とりあえず3.xでCSRFプロテクション 機能を使う場合について調べたのでメモしておく(Φω| [手順] 1. codeigniter/application/config/config.phpを開き、下記赤枠の項目をTRUEに変更。 下記変更でプログラム全体に有効になり、画…

CodeIgniter 3.xのバリデーションメッセージを日本語化するには?

CodeIgniter 4.xのrc2が出たけど、とりあえず3.1.xの最新で バリデーション含むフォーム作成をユーザーガイドを見ながら やっている。 で、バリデーションエラー時のメッセージを日本語化する 方法についてメモしておく(Φω| いまいち、プロトタイプの流れが…

CodeIgniter 3.xでBulmaを導入するには?

CodeIgniter3.xでBootstrapまでデカくなくていいけど 手書きじゃなくて簡易なCSSフレームワークを使いたい 場合の導入方法について調べたのでメモしておく(Φω| 調べただけで動かしてないけど基本的にそれでイケるはず. [手順] 1. applicationフォルダと同じ…

CodeIgniter 3.xでFormで作成した画面遷移のURLに付加される「index.php」を取り除くには?

この記事を読んだ時に、application/config/routes.phpを適切に修正 すればいいだけでは?と思ったが、Formヘルパーを利用して画面を 実装した場合に、「index.php」がcodeIgniter3.xを設置したURLの「/」 の後ろに表示されるという仕様になっているというの…

FuelPHPの基本的な使い方をチュートリアルで試す

こちらも、同じ理由で参考サイトのみ備忘録としてまとめて 自宅のテスト環境で試しながら基本的な使い方について調べる。 それにしても、FuelPHPのチュートリアルはあまり新しい情報が ないみたいだなー。特に日本語のが(Φω| まぁ英語サイトで使い方を学べ…

CodeIgniter 3.xの使い方を公式ドキュメントのチュートリアルで試す

詳細については帰宅してから、いじる予定(Φω| なぜなら、この資料を見ながら調べている環境にはメモリが Win10 Proに8GBしか詰まれてないので並列作業で捗らない から (タブブラウザ2種類で複数タブを開きながらVSCodeで コードを書いてXAMPPを動かしてたら…