- 1. PHPでのオブジェクト型データへのアクセス
- 2. 配列に大きい添字を指定して値を代入したときのサイズ
- 3. お手元のPHPファイルをphp-cs-fixerでチェックする
- 4. Laravel6 ユーザと管理者の認証を分けて管理者の認証情報のみ名前とパスワードだけにする
- 5. Humhubのカスタムモジュールの作り方(公式ページのとある解釈)(2)
- 6. CakePHPのAuthComponentを使ってパスワードを使わず任意のデータでログインさせる方法
- 7. PHP 製システム・設計思想面の,システムアーキテクト的な,ふわっとした話。模範解答はない領域だと思うけど,ベタープラクティスを披露してみる
- 8. 【PHP】foreach、三項演算子
- 9. [タスク②の解説記事]未経験からエンジニアがキャリア初期に、任されるあろう3つのタスクを出題してみる
- 10. formボタンの使い方(PHP超初心者)
- 11. Laravelでmockeryを使ったユニットテスト
- 12. PHPにおける演算子をまとめる
- 13. 【Laravel】多言語切り替え機能の実装
- 14. PHPの比較演算子
- 15. LaravelのMigrationファイルを既存のDBから自動生成する方法
- 16. ajaxで論理値をポストしたい
- 17. Laravel CSSの設定が反映されない
- 18. PHP学習要点(随時更新予定)
- 19. Laravelのバリデーションにおける基礎をまとめる
- 20. 【PHP】basename,require,require_once
PHPでのオブジェクト型データへのアクセス
型の種類で`object`というものがあります。配列のような使い方をするようですが、その要素へのアクセスの仕方です。
“`example.php
$a = $object->[‘property’];
“`
変数`$a`に`$object`の`property`プロパティの値を格納するという意味になります。
配列に大きい添字を指定して値を代入したときのサイズ
## 動機
Webアプリを開発する際、ユーザーID(整数)をインデックスにした配列を作ったときに、無駄に大きい配列になるのでは??## 結論
PHPでは配列、JavaScriptでは`Map`を使用すると、サイズが無駄に大きくならない。### PHPの場合
大きい添字を指定しても、問題はなさそう。“`php
$array = [];
$array[100] = ‘hoge’;echo count($array); // 1
“`### JavaScriptの場合
大きい添字を指定すると、あいているところに`empty`が挿入された配列になった。“`javascript
let array = [];
array[100] = ‘hoge’;console.log(array); // [empty x 100, “hoge”]
console.log(array.length); // 101
“`
`Map`を使用すると、PHPの配列と似たような振る舞いになった。“`javascript
let map =
お手元のPHPファイルをphp-cs-fixerでチェックする
## コマンド
“`shell-session
# 自動整形しない(差分表示のみ)
$ docker run -v $(pwd):/project herloct/php-cs-fixer fix –dry-run -v –diff –diff-format udiff .# 自動整形する
$ docker run -v $(pwd):/project herloct/php-cs-fixer fix -v –diff –diff-format udiff .
“`## 参考
– [Laravel PHP-CS-Fixer のルール設定](https://qiita.com/ucan-lab/items/7d4180462347a42009d5)
– [https://hub.docker.com/r/herloct/php-cs-fixer](https://hub.docker.com/r/herloct/php-cs-fixer)
Laravel6 ユーザと管理者の認証を分けて管理者の認証情報のみ名前とパスワードだけにする
# 目的
– ユーザと管理者とで認証を分ける方法をまとめる。
# 実施環境
– ハードウェア環境
| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| PC | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |– ソフトウェア環境
| 項目 | 情報 | 備考 |
| — | — | — |
| PHP バージョン | 7.4.3 | Homwbrewを用いて導入 |
| Laravel バージョン | 6.18.35 | commposerを用いてこちらの方法で導入→[Mac Laravelの環境構築を行う](https://qiita.com/miriwo/items/adaaaeecae69d63
Humhubのカスタムモジュールの作り方(公式ページのとある解釈)(2)
#はじめに
前回は、Humhubのカスタムモジュールの作り方について、モジュールの型枠といえるような部分について、公式ページについてのいち解釈を記述した。今回は、カスタムモジュールのeventsの記述についての解釈を、おじさんは語りたい。(おじさんは、「亜人ちゃんは語りたい」というアニメを見たりすると、そのオマージュとしてこんな言葉遣いをしてみたくなるのだ)。カスタムモジュールの利用にあたって、「このモジュールは、この操作のときにこんな風にでてきてほしい」という状態条件があることだろう。この状態条件、モジュール活性化の条件を記載することがeventsの記述であると言ったら、伝わるだろうか?コールバックのトリガーを書く、という表現があうだろうか?
今回の解釈ターゲットは、こちらの公式ページだ。
https://docs.humhub.org/docs/develop/modules-event-handler/前回内容と重複する部分もあるが、eventsの記述について公式ページの説明をなぞりつつ、後半、具体的にcustom_pageモジュールのメニュー表示の仕組みについて
CakePHPのAuthComponentを使ってパスワードを使わず任意のデータでログインさせる方法
## 前書き
パスワードを使わずにAuthComponentを使ったログインを実装したのでそのメモ書き
1つのテーブルだけじゃなくて複数のテーブルのデータからログインできる様に実装しています。イメージとして
荷物の再配達のサイトとして
電話番号と再配達番号の二つで再配達依頼ができる様にするイメージです。## 開発環境
PHP 3.6
CakePHP 3.8>※注意点
>AuthComponent は CakePHP4.0.0以降では非推奨になり、authorizationとauthenticationプラグインに置き換えられます。
> 引用元:CakePHP公式(AuthComponent)## 最初に行き着く答え
“`AppController.php
class AppController extends Controller
{public function initiali
PHP 製システム・設計思想面の,システムアーキテクト的な,ふわっとした話。模範解答はない領域だと思うけど,ベタープラクティスを披露してみる
# 概要
この五年間ほど,オープン系システムの開発に携わり,PHP を使う機会がありました。
自分でコードをゴリゴリ書くことは少ない(社外のビジネスパートナーさんへ発注)のですが,他者に書かれたコードを眺めるうちに,おぼろげながら,**PHP 製システムの「レベル」感って,こんなものかなぁ**という,個人的な線引きができつつあります。
また,入れ替わりの激しいフレームワーク情勢を見物していて,**「ブレてはならないフレームワーク活用指針」**についても,自分なりのアイデアが煮詰まってきたので,発展途上かも知れないけれど,そろそろ記事としてシェアしてみようと思いました。
技術面うんぬんよりは,**システムアーキテクト的な視点で,PHP 製システム・設計思想面のトピック**に近いかも知れないです。
ゆるっ&ふわっとした,とりとめのないトピックを,一つの記事にするという,巧みさが求められる作文になりそうです(冷や汗)。
# PHP 製システムの「レベル」感
昔ながらの,ザ・レガシー なPHP から,今風イケイケ PHP まで。
以下のテーブルで,すべてのパターンを網羅している
【PHP】foreach、三項演算子
PHPについて学習内容を備忘録としてまとめます。
#foreach
配列専門のループ処理。
配列の要素が入っている分だけ繰り返し処理を行います。例えば、実行例としては下記のようになります。
“`php
“;
}
?>#実行結果
test1
test2
test3
“`
このように3つの要素を繰り返し処理しました。##連想配列
連想配列でも同様の処理をすることが可能であり、
下記のように動作します。“`php
“test01” ,”test2” => “test02”,” test3” => “test03”);
foreach($test as $key => $value){
print $value . ”は” . $key . “です
”;
}
?>#実行結果
test1はtest01です
test2はte
[タスク②の解説記事]未経験からエンジニアがキャリア初期に、任されるあろう3つのタスクを出題してみる
## 前回の記事の解説
出題したタスクはこちら
https://qiita.com/morry_48/items/7dea1145d2db8bb7f570
## タスク②画面上に表示文言を追加する
〜DBに保存されたデータを取得し、画面上に表示しよう〜タスクの見通しとしては、
1.表示箇所の特定
2.表示するデータがデータベースから取得されているか確かめる(ない場合は取得する)
3.上記のデータを対象箇所に表示する
といった手順になる。タスク①の要領でまずは表示すべき箇所を見つけることから始める。
①で使用したlist.twigを少しスクロールするとカートに入れるボタンの箇所があるのでそのすぐ上が表示箇所となる。次にlist.twigの商品情報を表示している箇所を見るとProduct.hogehogeのようにして表示していることがわかる。(nameを表示している箇所はProduct.name)
Productの定義箇所を見ると145行目あたりに
{% for Product in pagination %}
とあることからpaginagionという変数(配列)を展開
formボタンの使い方(PHP超初心者)
##はじめに
PHP超初心者の私が、formボタンの作成につまづき、そこから学んだことを投稿させていただきます。
##formタグとは
入力フォームなどを作成するときに使用するタグ。##アクションとメソッドを設定する。
◉action属性 = フォームで入力したデータを処理するプログラムを指定できる。
※urlを記載すればボタンを押した時にそのページへ遷移することができる。決まっていない場合は「#」記号を設定する。◉method属性 = フォームで入力したデータをどのように送信するかを設定できる。
値は、”get”か”post”から選択する。
※method属性を省略すると初期値として”get”が入るが、通常は”post”使用する。###GETとPOSTの違い
・GETは情報の検索や取得処理を行う場合に使う。
・POSTは更新や、登録処理を行う場合に使う。
・機密性の高いデータの送信ならPOSTを使う。こちらの記事がとても分かりやすかったです。
https://qiita.com/kanataxa/items/522efb74421255f0e0a1##私がして
Laravelでmockeryを使ったユニットテスト
# この記事を読んでできること
LaravelでMockeryを使用したUnitTestができるようになる。
※結構前に作ったものなので、ご指摘あれば気軽にくださいmm## そもそもMockeryって何?
PHPUnitでモックを作りやすくしてくれるPHPモックオブジェクトフレームワークのこと。
https://readouble.com/mockery/1.0/ja/index.html# 環境
laravel 5.3
phpunit 5.7.3
mockeryを使用# やりたいこと
– Test::getInfo()という未実装のstaticメソッドをMock化してphpunitテストしたい
– post送信でlaravelのバリデーションを通して確認も同時に行いたい下記コードのstore(IdRequest $request)の部分でlaravel既存のバリデーションを行なっている。
ここのテストをするために$this->call()を使用したPOST送信を行っている。
その一連の処理の一部に当たるTest::getInfo()が外部接続で未実装というシチュエーシ
PHPにおける演算子をまとめる
#プログラミング勉強日記
2020年9月5日
演算子はもう大体知っていると思っていたけど、`<>`や`.=`といった知らない演算子もあったので、この機会にすべてまとめてみようと思う。#算術演算子
加減乗除といった簡単な足し算や引き算、掛け算、割り算を行う演算子。足し算は数値だけではなく、文字列を連結するときにも使われる。
足し算は`add`、引き算は`sub`、掛け算は`mul`、割り算の商は`div`、割り算の余りは`mod`で示す。| 演算子 | 意味 | 説明 |
|:–:|:–:|:–:|
| `+` | 加算 | 2つ以上の値の足し算をする |
| `-` | 減算 | 2つ以上の値の引き算をする |
| `*` | 乗算 | 2つ以上の値の掛け算をする |
| `/` | 除算 | 2つ以上の値の割り算をする |
| `%` | 剰余 | 割り算したときのあまりの数を求める |“`php:例
\n”;$sub = 17 – 5;
echo “1
【Laravel】多言語切り替え機能の実装
備忘録、第四弾。
前回書いた[「【Vue.js】vue-i18nを使って多言語化」](https://qiita.com/shin_moto/items/505ae84e9a37601e05ee)の続き。
Laravelで切り替え機能を実装してみた。参考:
https://mydnic.be/post/laravel-5-and-his-fcking-non-persistent-app-setlocale## 実装
まずは使用する言語を配列で用意します。
“`php:config/languages.php
‘日本語’,
‘en’ => ‘English’,
‘cn’ => ‘簡体字’,
‘tw’ => ‘繁体字’,
];?>
“`次に言語切り替え処理を書くコントローラーを用意します。
“`
$ php artisan make:controller LanguageController
“`“`php:LanguageController.php
class Lan
PHPの比較演算子
##はじめに
判定には比較演算子がよく使われると思います。
下記簡単にまとめます。##PHPの比較演算子
“`php
//型の相互変換をした後で $aが$bに等しい時にTRUE
$a == $b//$aが$bに等しく、および同じ型である場合にTRUE
$a === $b//型の相互変換をした後で$aが$bに等しくない場合にTRUE
$a != $b//型の相互変換をした後で$aが$bに等しくない場合にTRUE
$a <> $b//$aが$bと等しくないか、同じ型でない場合にTRUE
$a !== $b//$aが$bより少ない時にTRUE
$a < $b //$aが$bより多い時にTRUE $a > $b//$aが$bより少ないか等しい時にTRUE
$a <= $b //$aが$bより多いか等しい時にTRUE $a >= $b//$aが$bより大きいか、0等しいか、小さい場合に、それぞれ、0より大きいか、0か、0より小さい integer。
//PHP 7 以降で使用可能
$a <=> $b
“`引用:[PHP: 比較演算子 – Manu
LaravelのMigrationファイルを既存のDBから自動生成する方法
## oscarafdev/migrations-generator
* https://github.com/oscarafdev/migrations-generator
* 検索してみると[barryvdh](https://github.com/barryvdh/laravel-migration-generator)や[Xethron](https://github.com/Xethron/migrations-generator)のものが出てくるが、どれもoscarafdevをお勧めします、になっていっている様子。### 導入
* composer実行“`
composer require “oscarafdev/migrations-generator” –dev
“`### 使い方
* 全テーブルのmigration定義を作成する。
“`
APP_ENV=development php artisan migrate:generate
“`* テーブルを指定して作成する。
“`
APP_ENV=developmen
ajaxで論理値をポストしたい
ajaxを使って非同期でデータをポストするさい、その値を論理値(TRUE/FALSE)としてポストしたいというとき。
普通に書いても`string`型として扱われてしまう。
ポストするときにわざわざ`boolean(true)`などと書いても論理値としてはポストしてくれない。
なので、どこかで一度データを成型しないといけない。
今回はFuelPHPでの場合を記述する。“`view/example.php