PHP関連のことを調べてみた2020年03月08日

PHP関連のことを調べてみた2020年03月08日

PHP8にstr_contains関数が追加されることになったというお話

`strpos` や `strstr` を使わずに済むようになる・・・かもしれません( **日本語対応にやや懸念あり** )。

以下、 [RFC](https://wiki.php.net/rfc/str_contains) をもとに紹介します。

まだ投票中ですが、3月8日現在、賛成42/反対5という圧倒的多数の支持を得ているため、追加される公算が高いです。

# 既存関数の問題点
ある文字列が別の文字列に含まれているかをチェックする際、これまで [strpos](http://php.net/manual/ja/function.strpos.php) や [strstr](http://php.net/manual/ja/function.strstr.php) といった関数が使われてきました。

しかし、これらの関数は、以下の問題を抱えています。

– 読み手にとってあまり直感的でない
– 間違いやすい
– 新しく PHP に触れる開発者にとって覚えにくい

そのため、多くの PHP フレームワークが、同様の振る舞いをするヘルパー関数を提供しています。それだけ、この機能は、重

元記事を表示

【Laravel】MassAssignmentExceptionへの処方箋

#はじめに
MassAssignmentExceptionは新しくModelクラスを作成して、複数代入してデータをDBに保存しようとすると起こるエラーです。Laravel初心者の時はモデルを作成し時は必ず起きていました。。。

##複数代入時の問題点
複数代入でDBに保存するメソッドは`create`があります。
createメソッドを使う時は下記のようなコードになるかと思います。

“`php:
$user =User::create($request->all());
“`

これではフォームからの入力値を完全に信じて保存処理を行いますので、
入力フォームにない項目でもDBに該当する属性があれば保存されてしまいます。

だからLaravelでは「新しく作成したModelクラスから複数代入で属性(カラム)を保存しようとしていますが、その属性(カラム)を保存していいのかわかりません」というエラーを出るようになっています。

##どうすればいいか
上記のことから、やらなければならないことは「保存していい属性(カラム)のリスト(ホワイトリスト)か保存してはいけない属性(カラム)のリ

元記事を表示

PHPUnitの「phpunit.xml.dist」って何?

PHPUnitの設定ファイルはXML形式で、通常 `phpunit.xml` または `phpunit.xml.dist` という名前が使われる。

**でもこの `.dist` って何?**

調べたら作者のバーグマンさんが質問に答えてた。

https://stackoverflow.com/a/44764078

> If phpunit.xml or phpunit.xml.dist (in that order) exist in the current working directory and –configuration is not used, the configuration will be automatically read from that file.
>
> The idea behind the fallback (to phpunit.xml.dist when phpunit.xml does not exist) is that phpunit.xml.dist can be checked into version control and

元記事を表示

Ubuntu18.04にWordPressのローカル環境をつくる

WordPressを触ってみたかったので、ローカルの環境をつくったときのメモ

## 動作環境
Ubuntu18.04
## 今回すること
ホームページを公開するのではなく、ローカルでの環境を整えます。(ホームページを公開するにはサーバー契約とかドメイン取得とかが必要)
phpとかMariaDBとかもついでにインストールします。
ゴールは下のようなWordPressの管理画面になることです。![Screenshot from 2020-03-07 23-36-15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517356/cd0984fa-02d3-3240-b8e6-266dd9c6b6ad.png)

## WordPressとは
ググってみたらたくさん出てくると思います。
>WordPressは、オープンソースのブログソフトウェアである。PHPで開発されており、データベース管理システムとしてMySQLを利用している。単なるブログではなくコンテンツ管理システム としてもしばしば利用されている。-

元記事を表示

【Laravel+React】ページルーティング

#困ったこと
今回サービスを開発する上でLaravelでのルーティングをするのかReactでのルーティングをするのか迷い,元から実装していたReactでの実装にした.
その時単純なreact-router-domの記述ではLaravelとの連携ができない

#解決
web.phpのルーティング記述を以下のように変更して連携させる.

“`php:routes/web.php
Route::get(‘/{path?}’, function(){
return view(‘welcome’);
} )->where(‘path’,’.*’);
“`
welcome.blade.phpには従来のReactと同じようにRenderするためのルートIDを設ける.あとapp.jsを読み込む.(こいつがWebpack的にcssとかjsとか集約するっぽい)

“`html:resources/views/welcome.blade.php