phpに関するhikaru217のブックマーク (20)

  • 【PHPUnit】特定のクラス群だけのテストカバレッジを算出する - Qiita

    この記事はうるる Advent Calendar 2019 3日目の記事です。 はじめに 今回はPHPUnitにおけるカバレッジを、特定のクラスにだけ絞って算出する方法を紹介いたします。 テストカバレッジは、一般的に高ければいいというものでもなければ、低くてもいいというものではありません。 そのサービスにおいて最適な品質保証として、どの程度テストを網羅していればいいかどうかは、サービスにより異なります。 もちろんカバレッジを100%にしてあるに越したことはないですが 開発コストなどを考えると、どうでもいい機能はテストを書きたくないし、その代わりに重要な機能に対してはちゃんとテストコードを書きたい なんてこともあると思います。 この重要な機能に対してのみのカバレッジを計測したいという思いから 特定のクラス群のカバレッジを計測しましたので、その紹介をしたいと思います。 システム構成 今回使用す

    【PHPUnit】特定のクラス群だけのテストカバレッジを算出する - Qiita
  • Xdebug3で躓いた - 還暦過ぎたエンジニアの挑戦

    散歩の途中で(文とは関係ありません) 事の発端 Xdebugでステップ実行できない Xdebug3の基設定はこれ お急ぎの方はこちらをコピペ 事の発端 エンジニア、プログラマにとって不可欠と言って良い存在のXdebug。 Hikaruも長いことお世話になっています。 特にバグ潰しには威力を発揮します。 動きがおかしいと思われるプログラムがあったとき、 問題のありそうなプログラムステップで停止させ、 その時点の変数の内容やメソッドの結果を知ることができる エンジニアにとって神みたいな存在です。 その結果、 テストでは知り得なかった思わぬ結末が待っていたりもするのですが、 問題解決に威力を発揮することは論を待たないです。 ところが、そんなXdebugですが、 どうやら2020年にそれまでのXdebug2から3にバージョンアップされていたらしいです。 そんなことを知らずに、 新たにDocke

    Xdebug3で躓いた - 還暦過ぎたエンジニアの挑戦
  • Dockerを使ってPHP7+Apache+MySQLの開発環境を作る - Study & Practice

    今回は前回に引き続き実技試験の予習として開発環境を作っていく 前回はPHP7+Apacheまで作ったのでMySQLを含めた環境を作っていく carametal.hatenablog.com こちらの記事を参考にさせていただきました。 qiita.com こちらの記事ではMySQLクライアントにphpMyAdminを使っていますが ひとまず環境構築のみの目的なのでphpMyAdminは扱いません。 前回の記事ではDockerfileを用いていましたが今回はdocker-composeで環境を作っていきます。 手始めにdocker-compose.ymlを作成 version: '3' services: php: image: php:7.2-apache volumes: - ./html:/var/www/html ports: - 8000:80 container_name: php

    Dockerを使ってPHP7+Apache+MySQLの開発環境を作る - Study & Practice
  • デートに潜む罠 - 還暦過ぎたエンジニアの挑戦

    ナイスな感じだけど。。。まあ、いくら青春しているとはいえ、この歳で語る話でもないですが。。。 って違います。 Dateのことです。 日付の話です。😓 日付は腐れ縁 デジタルの世界では日付とうまく付き合うことは今や当たり前のことですね。 今日の売り上げ 今月の予算 明日の予定 などなど、 何かにつけて日付をキーにして何かすることは常識的な茶飯事で どんなポジションのエンジニアも、誰しもが関わる話です。 でも日付の計算と簡単に言うけれど、 毎月の日数が違う 4年に一度はうるう年がある 100年に一度はうるう年をうるう年ではなくするが400年ごとにやっぱうるう年にする(だから2000年はうるう年だった) と、まあ扱いにくいことこの上無いです。😩 おまけに 1日は24時間、1時間は60分、1分は60秒 って誰が勝手に決めたんだ? 1日は10時間、1時間は100分、1分は100秒 だったらどれだ

    デートに潜む罠 - 還暦過ぎたエンジニアの挑戦
  • 自分のパソコンをウェブサーバーにしておくときっと良いことが - 還暦過ぎたエンジニアの挑戦

    あるかどうかはわかりませんが、 少なくとも面白いことであるのは間違いありません。 ネットワークを味方に Hikaruはエンジニアなので、 自分のパソコンで ウェブサーバーを立ち上げておくということは 大工さんが大工道具を持つぐらいに必然なのですが、 みなさんはどうでしょうか? 一般的にはそんなものは必要ない と、思われるのではないかと思います。 が、今日は敢えて書こうと思います。 普段、スマホしか使わないという方も、 PCをお持ちでしたらぜひ。 自分のパソコンをウェブサーバーにしておきましょう と。 少し勉強すれば、副業ができるかもしれません。 自分には全く縁がないと思っていたプログラムやホームページ作成ができると趣味の幅も俄然広がるかもしれません。 ブログを書いている人もその仕掛けが紐解かれるかもしれません。 な~んだ、、、なんてね。 追々、このブログではいろいろなことを紹介していきたい

    自分のパソコンをウェブサーバーにしておくときっと良いことが - 還暦過ぎたエンジニアの挑戦
  • ディシジョンテーブルのこと【スイッチ】 - 還暦過ぎたエンジニアの挑戦

    先日、スイッチでランプを点けようというこんな記事を書いたのですが、blog.yutenji.biz あの時は単純に スイッチをオンにする → ランプが点く スイッチをオフにする → ランプが消える でしたので、その動作をブラウザで表現するプログラムは比較的簡単でした。 ですが、今度は電気工事士を目指すエンジニアとして、😏 一歩進んで「3路スイッチの動作」を Vue.js を使ってブラウザで表現することを考えてみたいと思います。😄 3路スイッチとは 例えば、階段の照明を階上と階下と両方から点けたり切ったりできるようにするときに使うスイッチのことで、図示するとこんなイメージです。 普通のスイッチ(左図)と3路スイッチ(右図)のイメージ ちょっとプログラム的なハードルは上がりそうですね。 この3路スイッチの図のスイッチAをポチッと押した時 が になるとすると、 ランプが点くかどうかは スイッ

    ディシジョンテーブルのこと【スイッチ】 - 還暦過ぎたエンジニアの挑戦
  • スイッチでランプを点けよう【スイッチ】 - 還暦過ぎたエンジニアの挑戦

    前回(というべきか昨日ですが)、 webで使えるスイッチ という記事を書いたのですが、せっかくですので今日はその続き。 そのものずばりで 「スイッチでランプを点けよう」 ということで今日のサンプルはこれです スイッチのアイコンをクリックすると ランプが点いたり消えたりする画像 完全に遊んでいますね。😅 しかしVus.jsおそるべしです。 こんなに簡単にできるとは。。。 ソースはこんな感じ <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <div class="sampleMaterial"> <h1>スイッチ2</h1> <sp

  • publicではないメソッドをテストする - 還暦過ぎたエンジニアの挑戦

    privateやprotectedのメソッドだってテストコードを書いておきたいときはある。 でも、あまり頻繁には使わない。 いつもどうだっけ? ってなる $reflectionMethod = new \ReflectionMethod(クラスのインスタンス, テストするメソッド名); $reflectionMethod->setAccessible(true); $result = $reflectionMethod->invoke(クラスのインスタンス[, テストするメソッドの引数]); 結局 reflectionMethodのインスタンスを作って アクセス可能にして、 invokeする3ステップで

    publicではないメソッドをテストする - 還暦過ぎたエンジニアの挑戦
    hikaru217
    hikaru217 2020/05/14
    privateメソッドにユニットテストは要らないという人もいるけれど
  • ショートカットページを作りました - 還暦過ぎたエンジニアの挑戦

    なんとなく「これだけ知りたい」の記事も書き溜まってきたので、 整理したいなぁ。。。 カテゴリーのメニューからはそれぞれの記事へのリンクはありますが、 要点をまとめておかないと自分でも使いにくい そもそも書き始めたコンセプトは受験生の単語カードみたいなものをイメージしていたのです。 ショートカットページというのもちょっと違う気がするけど。。。 それなのに、これではぜったい違う。 と、思ったので実行しました。 今日までのまとめを書きました。 こういうような書き方しておかないと実践的ではないですよね。。。 MySQLのこれだけ知りたい と、いつもの自画自賛 今日までの記事を整理したページ MySQLのこれだけ知りたい Excelのこれだけ知りたい Gitのこれだけ知りたい Phpのこれだけ知りたい 事あるたびに追記していきま~す。

    ショートカットページを作りました - 還暦過ぎたエンジニアの挑戦
  • 【シリーズテーブル】9:まじめにREADMEを書いてみた - 還暦過ぎたエンジニアの挑戦

    << 8. 道具へのこだわり ここまで書いてきて、 「労せずして」 「ミスを少なく」 を合言葉に、データベースと付き合いながらエンジニア仕事を進めるための道具になってきたなと思っているところです。自画自賛(^_-)-☆ でも、大事なことはこれをちゃんと自分自身も含めて伝わるようにしておかないといけない! 誰でも使えるように、公開リポジトリにはしてみたものの、中途半端はいけない! と反省して今日は README*1を書いてみました。 Php Engineer Tools hikaru217 のREADME いや、Markdown*2って書くのは意外と楽しいですね。 ちゃんと画像も用意して、 ファイルマップも書いて ここでも体裁には少しこだわってしまいました。 誰かの目に留まるかな。。。 この【シリーズテーブル】はいったん完結としておこうと思います。 お付き合いいただいた方、ありがとうござい

    【シリーズテーブル】9:まじめにREADMEを書いてみた - 還暦過ぎたエンジニアの挑戦
  • 【シリーズテーブル】1:データベース接続 - 還暦過ぎたエンジニアの挑戦

    (この記事は2020-4-26にリメイクしました) そろそろ、エンジニアっぽいことも書いていきたいと思います。 更地に新しいシステムを作るときはまあ良いのですが、 どんなシステム開発の現場でも、たいていは既にデータベースがあります。 要求されるお話とにらめっこしながら、テーブルやそのデータとお付き合いが始まることになるのですが。。。 最初にやることは どんなテーブルがあって どんなデータがどういう風に保存・管理されていて どういう風に利用するのか を捉えること。 でもこれがなかなかスムーズにいかないことも多いのです。 そんな時や、実際の開発時に役に立つMySQLと付き合うための、Hikaru自作の便利ツールを順に紹介していきたいと思います。 Hikaruの便利ツールをコピーする ローカルマシンにXAMPPなどの開発環境をお持ちの方は、 http://localhost/などでアクセスできる

    【シリーズテーブル】1:データベース接続 - 還暦過ぎたエンジニアの挑戦
  • 【シリーズテーブル】7:サンプルサイトで紹介 - 還暦過ぎたエンジニアの挑戦

    << 6. エンジニア御用達のツールに そろそろ役に立ちそうなツールに見えてきましたでしょうか?? といってもわかりづらいと思うので、百聞は一見にしかず、デモ用のサンプルサイトを立ち上げました。 サンプルデモサイト ↑ いや、何とも寂しいトップページ 誰かちょっとデザインしてくれないかな。。。 デモサイトではWordpressのテーブルを素材に、コメントを編集したり、テーブルの詳細を表示したり、自由に操作していただけます。 ひやかし大歓迎 8.道具へのこだわり >>

    【シリーズテーブル】7:サンプルサイトで紹介 - 還暦過ぎたエンジニアの挑戦
  • 【シリーズテーブル】6:エンジニア御用達のツールに - 還暦過ぎたエンジニアの挑戦

    (この記事は2020-4-26にリメイクしました) << 5.テーブルの詳細情報を表示する 前回までの記事で、データベース直結の 「動的に変化するテーブル仕様書」 の役目は十分発揮できると感じていただけたのではないかと思います。 紙に書いた仕様書は「その時」は良くても、アジャイル開発*1では、テーブルの追加やカラムの修正、keyの追加など、データベースの状態は常に変わり続けていると言っても過言ではありません。 特に、紙に書いた仕様書ではいつの状態を表したものか、それが現在の状態を正しく表しているのか、よほど管理がしっかりしていないと信用性に乏しいと思います。 エンジニアとしては直接データベースを参照することももちろん必要だし、確認もするのですが、「パッと俯瞰的に掴んで」スムーズに、確実に仕事を進めるには、自前で作ってでもこういうツールには手間を惜しまないようにしています。 で、もう少し続き

    【シリーズテーブル】6:エンジニア御用達のツールに - 還暦過ぎたエンジニアの挑戦
  • 【シリーズテーブル】5:テーブルの詳細情報を表示する - 還暦過ぎたエンジニアの挑戦

    (この記事は2020-4-26にリメイクしました) << 4.テーブルコメントを編集する ここまでくればもう一息です。 テーブルをコメント説明文付きで一覧表示できるようになったので、だいぶ仕事がやりやすくなりました。 前回で、コメント付きのテーブル一覧が表示できるようになりました あとはエンジニアとして、それぞれのテーブルの詳細情報が欲しいところです。 カラムの構成やデータタイプはもちろん、 どのカラムがindexを持っているか、外部キー制約はあるか とか 既定値は定義されているか、等も知りたいところです。 たた、断っておきたいことは、 このシリーズで書いていることは、 MySQL Workbench やphpmyadminでもできることです。 それを敢えてこんな風に手をかけているのは、 スピード感をもってミスを減らすことに繋げるためのプロのエンジニアとしてのツールに対するこだわりです。

    【シリーズテーブル】5:テーブルの詳細情報を表示する - 還暦過ぎたエンジニアの挑戦
  • 【シリーズテーブル】4:テーブルコメントを編集する - 還暦過ぎたエンジニアの挑戦

    << 3.簡単にスタイルをつける だんだん題に近づいてきました。 いよいよ、テーブルコメントを素早く編集できるようにしておきたいと思います。 やりたいことは そのテーブルのペンマークをクリックしたら、テーブルコメントを編集できるようにテキストボックスを表示する。 ※そこで好きなように入力するが、MySQLのコメントの文字数には制限があるので注意する。 最初のペンのマークは更新するマークに代わっているのでクリックする コメントが登録される 簡単になったテーブル説明文の編集 これならいちいちALTER文を書かなくてもテーブルコメントの管理ができます。 何しろ、「データベース直結のテーブル一覧仕様書」なので、紙の仕様書とは違い、更新の手間が要らないです。 真面目に入力してみたところ 5.テーブルの詳細情報を表示する >>

    【シリーズテーブル】4:テーブルコメントを編集する - 還暦過ぎたエンジニアの挑戦
  • Icons - Material Design

    Build beautiful, usable products faster. Material Design is an adaptable system—backed by open-source code—that helps teams build high quality digital experiences.

    Icons - Material Design
  • 簡単に表にスタイルをつける - 還暦過ぎたエンジニアの挑戦

    (この記事は2020-4-26にリメイクしました) << 2. テーブル一覧を表示する 前回の記事で、テーブルの一覧を表示するようにしました。 内容は「テーブル名: table name」と「テーブルコメント: table comment」だけにしてあります。 それ以外の情報はここでは不要で、シンプルに見られるようにしておきました。 サンプルの題材にはWordpressのテーブルを使いました。 Wordpressのテーブル一覧 見ていただくとわかるように、テーブル名だけ見て用途のわかりそうなものもありますが、なんだかよくわからないものもあります。 こういう時にテーブルの名前の付け方って重要だなぁ、と思います。 ここで注目したいのは、それぞれのテーブルに「コメントが書かれていない」というところです。 そのテーブルの用途や、使用上注意することなどがちょっと書いてあるだけで、エンジニアとしてはす

    簡単に表にスタイルをつける - 還暦過ぎたエンジニアの挑戦
    hikaru217
    hikaru217 2020/04/17
    ポイントはこれ 横着というと聞こえが悪いが、要するに作業効率を上げるためのひと手間を惜しんではいけない。。。 と、思う
  • 【シリーズ テーブル】2:テーブル一覧を表示する - 還暦過ぎたエンジニアの挑戦

    (この記事は2020-4-26にリメイクしました) << 1. データベース接続 とりあえず、ローカル環境でデータベースに接続したら、中身がどうなっているのか、、、 そう思った時に、たとえ、体裁よくまとめられたテーブル仕様書があったとしても、経験的に100%信用するわけにはいかないと思っています。 年期の入ったシステムになればなるほど、その実態に合わせて仕様書が更新されているのか、最新の状態を表しているのか、などがはっきりしないことがあるからです。 でも、とにかく俯瞰して全体を見てみないと話が始まりません。 ですのでこの目で確かめることにします。 その時に、もちろんMySQL Workbench*1 やphpmyadmin*2といったツールもあるので、それらでも十分仕事にはなるのですけれども、ここは少し横着をすることと、仕事の効率を考えてオリジナルに進めていきます。 まず、メニューにテーブ

    【シリーズ テーブル】2:テーブル一覧を表示する - 還暦過ぎたエンジニアの挑戦
  • 【シリーズ】テーブルとの付き合い1 - 還暦過ぎたエンジニアの挑戦

  • Carbonはシンプルに使おう - php - 還暦過ぎたエンジニアの挑戦

    いまや、phpで日付や時間の操作をしようと思ったら欠かせないCarbon いろいろ丁寧にそのCarbonの使い方を紹介しているサイトもありますが、 そんなにあれやこれやと覚える必要はない気がするので、いつものように「これだけ」に絞っておこうと思う echo Carbon::today() ->addDay(-1) ->setTime(10,25,0) ->format('Y-m-d H:i:s'); みたいなこれをアレンジすれば大概は事足りる。 あとは ->getTimestamp() と Carbon::parse(’2020/3/26’) を知っておけばほとんど問題ないね

    Carbonはシンプルに使おう - php - 還暦過ぎたエンジニアの挑戦
  • 1