Chronos¶ Chronos (クロノス) は、 DateTime オブジェクトへの拡張の依存関係の無いコレクションを提供します。 便利なメソッドに加えて、Chronos は以下を提供します。 カレンダー日付のための Date オブジェクト イミュータブルな日付と日時オブジェクト プラグインのような翻訳システム。ライブラリーは英語のみの翻訳を含んでいます。 しかし、全ての言語サポートのために、 cakephp/i18n を使うことができます。 インストール¶ Chronos をインストールするためには、 composer を利用することができます。 アプリケーションの ROOT ディレクトリー(composer.json ファイルのある場所) で以下のように実行します。 概要¶ Chronos は PHP が提供する DateTime オブジェクトのいくつかの拡張を提供します。 Chr
はじめに フロントエンドエンジニアを目指してプログラミングを学習しています。 トンテキと申します。 プログラミング学習のアウトプットとして自作のWebサービス-SHAKYO-を制作、公開しました。 この記事では-SHAKYO-の概要や制作過程について説明します。 URL リンク先はこちら- SHAKYO - 目的 ・フルスクラッチ開発を行うことでWebアプリの基本的な構成、動作を知る ・自作のWebアプリで同じ初学者の方の役に立つサービスを提供したい スペック 使用言語 / HTML5/ CSS3 / Javascript / PHP DBMS / MySQL 開発環境 / MacOS Mojave 10.14.6 バージョン管理 / SourceTree(3.0.15) 本番環境 / xserver 主な機能 ユーザー管理機能 ・ユーザー登録機能 ・ユーザーログイン機能 ・ユーザー編集機
なぜこの記事を書いたのか 今社内で Laravel 本の読書会をしたり、公式マニュアルの日本語翻訳ドキュメントを読んだりしながら、Laravelの学習を進めているわけだが、どうもサービスコンテナとサービスプロバイダが重要であることは伝わってくるんだが、その説明がしっくりこない。 なぜなんだろうということで、ソースを読んでみたり、色んな人のまとめを見てみたり、チュートリアルの動画を見てみたりしていて、「あー、こういうものかー」ということで自分的に納得がいったので、それを書いてみたというのがこれになります。 この記事の内容は、あくまでもサービスコンテナとサービスプロバイダの役割のほんの表面をなぞっただけで、全然深堀りしてるものではないです。サービスコンテナとサービスプロバイダは本当にいろいろなことをしていて、これで書いているのはごくごく入り口の部分の理解ということになります。 サービスコンテナ
※この実装はバグがあります。コメントおよび正しい実装を参照してください。 『利用できるフィルタのリスト』という謎の項目があります。 filter_input()とかのFilterとはまた別の、PHPにデフォルトで用意されているフィルタです。 何ができるかというと、入出力ストリームに対して操作が可能です。 ストリームとはfopen()とかでオープンされるリソースで、というか他に何か使えるものあるんですかね? <?php $text = 'abcdefg'; // ストリームフィルタ $crypt = 'mcrypt.'.MCRYPT_3DES; $decrypt = 'mdecrypt.'.MCRYPT_3DES; $params = array('iv'=>'hoge', 'key'=>'fuga'); // 書き込み $fp = fopen('foo.txt', 'w'); // 暗号化
2014年に書いた PHP CS Fixer の記事 が今でも読まれているのですが、2016年末にリリースされた PHP CS Fixer v2.0 で後方互換のない変更が多く入っており情報が古くなっているため、改めて v2 について書いてみようと思います。なお現時点での最新版は v2.1.2 となります。 fivestar.hatenablog.com PHP CS Fixer とは PHP CS Fixer は PHP コードをコーディング規約 (CS = Coding Standards) に沿って補正してくれるライブラリです。歴史を辿ると、元々は Symfony のプロジェクトリードの fabpot 氏が作成したもので、 PSR-½ 、あるいは Symfony のコーディング規約 に沿ってコードを補正する機能が実装されています。 github.com チームでコードを書くときはコー
PHP 8から、PHPは「PHP」と「P++」という2つの言語を提供するようになる というキャッチーな紹介をするP++: 静的型付けをめざすPHPという記事がそれなりに話題になり、このニュースは目覚しく革新的な内容で、多くのひとの目を引き付けました。 これは早まった理解であり、ほとんど誤報と言ってもいい内容でした。2019年8月15日には提案者本人も、少くとも「P++」の計画を短期的に実現するととは非現実的であり時期尚早であることを認めています。 この記事では、PHP開発の現状、なぜ野心的なP++計画が提案され、事実上撤回されたかの経緯について紹介します。 [中立性のための表示] この記事の著者@tadsanはPHPの静的解析を強く推進する立場です。 PHPゆるふわCI入門 PHP型検査・夢と理想と現実) 三行で要約 PHPはバージョンを経るごとに「歴史的経緯」による負債が削ぎ落されてきた
git diffを見やすくする git diff --color-words で差分を小さく表示する 通常のgit diffは行単位なので、例えば変数名を一括変更した場合見づらいです。 --color-wordsを指定すると記号やスペースで区切られた単語単位でのdiffを表示できます。gitの設定は不要です。 より細かな表示のカスタマイズも可能です。man git-diffで--word-diffを検索してみてください。 ※ただし、変更が複雑な場合は、通常のgit diffのほうが見やすいこともあります。 .gitattributesを設置してもっと小さく表示する .gitattributesファイルを設置することで、言語文法に基づいて変数名、関数名といった単位でdiffを表示できます ファイル設置後にgit diff --color-wordsとすると、下記のようにさらに小さく表示できま
追記 この記事のやり方でもいいっちゃいいのですが、PHP7以降では"set_error_handler"でエラーを例外に変換せず、"Error"例外を直接キャッチするほうがよりスマートだと思います。 PHP: PHP 7 でのエラー - Manual なので「例外でキャッチできないエラーがある」というのがほぼなくなった感じですね。 (ただし、"Error"は"Exception"と兄弟関係なので、全部キャッチするつもりのcatch(\Exception $e)ではキャッチできない事に注意。) 追記終わり。 PHPはエラーが扱いづらい いきなりですけど、PHPはエラーが扱いづらい言語だと思います。(おっと、最初の行からPHP Disだ、ブクマが稼げる) 「サーバーにPHPをアップロードして、ブラウザで試行錯誤する」というスタイルを実現するために、なにかあってもInternal Server
古来より、PHPの ‘is_numeric‘ 関数は鬼門とされております。 PHPのis_numeric関数は使うべきでないという話 - hnwの日記 先日見かけた、このエントリーにはコードレビューでの例にis_numericへの指摘がありました。 私がコードレビューの際に気をつけているコメントの書き方 - BASE開発チームブログ 最近私のほうは、PHPでのQAツール環境の土壌が豊富になってきたこともあり、言語やツール由来のハマリ所はCIでどんどん解決したほうが良いという見解からつい、このようなつぶやきをしております。 `is_numeric` を禁止するCS作って、preg_match('/\A[0-9]+\z/') なら `is_numeric`にするmutation作ればよそうなどと思ってしまったhttps://t.co/78OQUgndc1— sasezaki (@sasezak
Mutation testing とは、プログラムに対するテストケースが十分であるかを測定する手法です。テスト対象のプログラムを機械的に変更してバグを埋め込み、テストがちゃんと失敗するかどうかを調べます。バグのあるプログラムをテストするので、テストの失敗はバグを検出できたことを意味します。さまざまなバグを作り出してテストを行い、バグの検出率によってテストケースの十分さを測定します。 PHP で mutation testing を行うフレームワークとして、Infection PHP があります。今回はこれを利用して、PHP のプログラムに対して mutation testing を試してみます。 infection.github.io プログラムの準備 まず準備として、テスト対象のプログラムを実装し、PHPUnit で単体テストを実行できるところまで進めます。composer を利用して環
Node.jsのインストール Laravel ElixirやESLintを実行するためにはNode.jsが必要なので、インストールしておく。 Gitの設定を調整 キャッシュやLaravel Elixirが生成するファイルの設定 ### Composer ### composer.phar /vendor ### PHP Coding Standards Fixer ### .php_cs.cache ### Node ### /node_modules ## Laravel ## .env ## Laravel Homestead ## /.vagrant Homestead.yaml Homestead.json
面白かった。最近ぜんぜんPHPは書いてないんですが。 php-genba.shin1x1.com 感想書かなきゃとおもいながらダラダラしてたらもう次のエピソードが出ていたんだけど、1つ前のエピソードの感想です。 "長谷川さんのところのコードリファクタリングしにいきたい" 新原さんkonmari感ある #phpgenba— ISHIDA Akio (@iakio) 2019年2月26日 いろんな過程を経て、@shin1x1 さんの伝えたいことが熟成されてきている感じがして良い。 途中、interfaceを書くかという話で意見が分かれていた。僕も @shin1x1 さんと同じで、interfaceを使うことに特別な感情はない。 僕も昔はinterfaceを何のために書くのかわからなかったけど、今は「とりあえずinterfaceにしておいて、classでもいいかと思ったらclassにしよう」くら
モチベーション 全体 サンプルアプリケーション コアレイヤ サービスレイヤ 口座間送金ユースケース 処理の流れ コアレイヤ サービスレイヤ コアレイヤ対象範囲 DDD スタイル 手続き型スタイル 実装アイデア レイヤでパッケージを分ける コアレイヤの範囲 ポートの種類 DDD スタイルへの一歩目 さいごに 参考 独立したコアレイヤは、アプリケーション実装パターンである。以下のような特徴を持つ。 アプリケーションを、何を実現するのか(What)と、どのように実現するのか(How)に分ける。 What は、コアレイヤに実装する。ユースケースやドメインロジックを実装する。フレームワークやライブラリには依存しない。UI やデータベースからは独立している。 How は、サービスレイヤ(仮)に実装する。フレームワークやライブラリを活用して、ユースケースが要求する技術詳細を実装する。 コアレイヤが必要な
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事を書くにあたって Laravel について色々サポートしてくれた皆さまに向けてお礼申し上げます。ありがとうございました。 本記事はクリーンアーキテクチャに対する理解を深めていただくために、「実践クリーンアーキテクチャ」の内容を Laravel で実装して解説するという内容になっています。 記事のゴールは「クリーンアーキテクチャに対する理解を深めてもらう」というものです。つまり、この実装の形は一例に過ぎません。 はじめに 皆さんクリーンアーキテクチャはご存知でしょうか。 そう、こんな図のアレです。 The Clean Archit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く