composer で phpQuery をインストールする htmlをパースする まとめ composer で phpQuery をインストールする Composer が入っている前提とします。 composer require electrolinux/phpquery htmlをパースする Guzzleでリクエストをして、返ってきたHTMLを…
Guzzleについて Guzzle という PHP の HTTP クライアントがある。 github.com このライブラリ、めちゃめちゃ使われているし、基本的には使い勝手も良い。僕も PHP で Web API を叩く時などには基本的にはこれを使う。 違和感 しかしある時に違和感に気づく。…
はじめに PHPUnit 6 にするきっかけ 地道な修正作業 クラスの namespace mt_rand と mt_srand グローバル変数の扱い non-numeric test phpunit6 ochiru アサーションをしていないテスト PHPUnit 6 にしてよかったこと そして時代は はじめに この記事は PHP …
はじめに 環境 PHP, nginx, php-fpm のインストール PHP と php-fpm を Amazon Linux にインストールする nginx を Amaxon Linux にインストールする 各種設定 nginx の設定 server_name root fastcgi_pass php-fpm の設定 ユーザーと権限 nginx から php-fp…
環境 はじめに AuthenticatesUsers::login の中でやっていること validateLogin hasTooManyLoginAttempts まわり ThrottlesLogins::hasTooManyLoginAttempts attemptLogin それ以降の処理 環境 PHP 7.3 Laravel 5.8 はじめに Laravel では標準で認証の機能が…
はじめに 個人的に役に立ったページです 執筆時のLaravelの最新版は 5.8 です 基本は公式ドキュメントが大事 随時更新していきます Homestead Laravel Homestead 5.8 Laravel HomesteadでPHP(Laravel)アプリケーションが動作しなくなった時の対処法 Model, M…
環境 はじめに is_numeric ctype_digit 結論: filter_var 環境 利用しているバージョンは PHP 7.2 ですが、結構幅広いバージョンに通じる話だと思う。 はじめに PHPのキャストがガバガバなのはみなさんご存知だろう。 $ php -r "var_dump((int)'ホゲーーー')…
Interfaceを利用する意義 Laravelでどうやって注入するの? サービスプロバイダとは register メソッドでDIの設定を書く Interfaceへの実装注入以外の用途でも使える まとめ Interfaceを利用する意義 LaravelはDIを勝手にいい感じにしてくれます。例えばこう…
はじめに PHPのWebフレームワークといえばLaravelである。今PHPでWebアプリケーションを開発するならLaravelを使っておけば間違い無い。 LaravelにはHomesteadという開発環境が用意されていて、これを使えばすぐにWebアプリを作成できる。 環境 今回はMacで…
はじめに PHPのGuzzleHttp *1 を利用し、以下のようなコードを書いた。 guzzleClient は コンストラクタDIなどを利用して // $this->guzzleClinet = new \GuzzleHttp\Client(); を差し込むようにする $response = $this->guzzleClient->post($url); } catch …
概要 ??= 演算子とは この演算子が使えない理由 関係する演算子の歴史 三項演算子 a ? b : c 二項演算子 ?: 演算子 ?? まとめ 参考 概要 PHP 7.4 から ??= 演算子が追加されることが確定しました。 github.com ??= 演算子とは $var ??= <value> は、 $var が null </value>…
これはなに? PHPで新規開発する際にどういう構成だったりフレームワークにしていくかなというメモです。 PHPの特徴 ゆるふわで書けるので開発スピードが早い。 学習コストが低く直感的なので誰でもすぐに書ける。 利用者が多くライブラリが充実している。 P…
はじめに 機能の概要 v1 との違い 対応している型 callableについて strict_types 継承 将来の話: readonly 値の初期化 参照渡し さいごに 参考 はじめに PHP 7.4の新機能としてクラスのプロパティに型がかけるようになる機能が提案されていました。これはTy…
はじめに 2018年9月にSlimの3.11がリリースされました。私がslimフレームワークを採用して開発を始めた時のバージョンは3.9.2でした。3.9.2のリリースが2017年の11月、3.10.0が2018年の4月。3.9.2から2回のリリースがありました。 3.10.0の変更 3.10.0の変更…
前回のあらすじ 以下の記事の続きです。 www.utakata.work FluentPDO *1 というライブラリのSelectQueryメソッドをMockeryでMockしようとすると、Declaration of Mockery_3_SelectQuery::__call($method, $args) should be compatible with CommonQuery::__c…
はじめに MockeryとFluentPDOの実装を追ってみる。 どうするか はじめに PHPのモックフレームワーク「Mockery」を利用してクラスをモックしようとした際に以下のエラーが出た。 Declaration of Mockery_3_SelectQuery::__call($method, $args) should be com…
はじめに 新しくAPIサーバーを建てるまでの話 新サービスを建てるにあたり考えなければいけないこと 開発を進めるにあたり 言語・フレームワーク・ミドルウェア選定 フレームワークどうするか GraphQLを採用するか、JSONのREST APIにするか サーバー構成をど…
はじめに PHPのバージョン empty(false) は true is_numericはfloatでもtrue $datetime->format の t まとめ はじめに PHP アドベントカレンダー が結構空いているので突貫で記事を書いています。 以前、以下のような記事を書きました。 www.utakata.work ま…
はじめに この記事は GraphQL Advent Calendar 2018 - Qiita の4日目の記事です。 昨日はgipcompanyさんのLet's Paginate! - GraphQLでページネーションをやってみよう!でした。 PHPでGraphQL GraphQLが話題になり始めたぐらいの時に、「GraphQL便利そうだ…
Thorowable Error Exception RuntimeException LogicException まとめ PHP7の例外のうちよく使う例外と構造は以下の通りです。 Thorwable Error Exception RuntimeException LogicException もっと詳細な図は以下の記事を見るとわかりやすいです。 qiita.com…
はじめに バージョン 参考 Request 継承関係 Psr\Http\Message\MessageInterface と Psr\Http\Message\ServerRequestInterface Requestクラスで定義されているHTTP Method Request::getParam($key, $default = null) Request::getMethod() はじめに Slim Fra…
PHPのモックフレームワークでprotectedメソッドをモックしたくなる場合があります。例えば、 database = $database; } public function save($title, $description) { $createdAt = $this->now(); $database->store($title, $…
先日、こんな事件がありました。 どういうことなのか もっとわかりやすく 何が間違いなの? 具体的に動くコードで見てみる わかりましたか? 先日、こんな事件がありました。 func; $func(); // これ以降 $func は使われていない } } このようなコードがあり…
countメソッド Exception周り まとめ countメソッド 要するに以下のQiitaの記事の内容である qiita.com PHPのcount関数を利用したときに以下のWarningげ出ることがある Warning: count(): Parameter must be an array or an object that implements Countable…
Mockeryでパーシャルモックを作ることがある repository = new Repository(); } public function モックしたいメソッド() { } public function モックしたくないメソッド() { } } // テスト $mock = \Mockery::mock(モックしたいクラス::class)->makePartial…
もくじ もくじ Middlewareとは Middlewareの実装方法 Middlewareの利用方法 どういうときに使うか Middlewareとは beforeとafterを指定できる Middlewareの実装方法 functionで実装するかClassで実装するかがあるけどクラスで実装したほうがいいだろう
もくじ もくじ 概要 Set the 'ServerName' directive globally to suppress this message configの場所を特定する ServerName を書く PHPの問題 brewでインストールされているPHPのディレクトリ Apache用のPHPモジュールのディレクトリ ApacheのconfigにPHP…
No such file or directory は UNIX ソケットのファイルが見つからないエラー 修正方法 UNIX ソケットファイルの場所を確認 php.ini の設定を確認 php.ini の修正 参考ページ No such file or directory は UNIX ソケットのファイルが見つからないエラー PDO…
背景 php7ccを利用したチェック php7ccのインストール php7cc の使い方 PHP7化にあたり修正が必要だった箇所 古い形式のコンストラクタ 参照渡しnewの削除 preg_replace 関数の e 修飾子が使えなくなった 参考 String, Int という名前のクラスは定義できなく…
はじめに PHP で Web ページのスクレイピングをする 利用するのはGuzzleHttpとDOMDocument DOMDocument DOMXpath GuzzleHttp GuzzleHttpのインストール スクレイピングしてみる GuzzleHttpを使ってHTTPリクエストを送る Guzzleで受け取った結果をDOMDocument…