20210915のPHPに関する記事は3件です。

配列処理スピード比較

配列のループ処理の速さは?? 配列の要素に対して処理を行いたいことはよくある話だが何が一番早いのか検証してみた。 ちなみに配列 $array = array(); for($i = 1; $i < 100000; $i++){ $array[] = $i; } 処理させる内容 function hundredNumber($n){ return $n * 100; } 処理速度を測る関数はこちらを参考にさせていただきました。 PHPの処理速度の計測方法 foreach 定番の配列処理 $start = hrtime(true); $result_array = array(); foreach($array as $num){ $result_array[] = hundredNumber($num); } $end = hrtime(true); echo 'time : '.number_format($end - $start)."<br>"; //time : 19,387,398 for ループ処理といえばこれ $start = hrtime(true); $result_array = array(); for($i = 1; $i < 100000; $i++){ $result_array[] = hundredNumber($i); } $end = hrtime(true); echo 'time : '.number_format($end - $start); //time : 17,017,476 while またまた定番、よく無限ループして焦ってる $start = hrtime(true); $result_array = array(); $i = 1; while($i < 100000){ $result_array[] = hundredNumber($i); $i++; } $end = hrtime(true); echo 'time : '.number_format($end - $start); //time : 17,280,002 array_map あんまり使ったことない $start = hrtime(true); $result_array = array_map('hundredNumber', $array); $end = hrtime(true); echo 'time : '.number_format($end - $start); //time : 15,786,888 結果発表 一番定番のforeachが遅い結果となってしまいました。 そして私の中ではダークホース的存在だったarray_mapが優勝!! コードもスッキリするし、これからは積極的に使っていこうと思いました。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PHP初心者に超オススメのUdemy講座6つを厳選!web入門者必見

この記事では、Udemyのオススメ初心者向けPHP講座を紹介します。 ・未経験だけどwebアプリケーションを作れるようになりたい ・将来的にサーバーサイドエンジニアになりたい ・自分でコードを書くかは未定だけど、ウェブサービスを作って起業したい といった人にオススメできるものをチョイスしました。 PHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門 おすすめ度:★★★ ・PHP+MySQL(MariaDB) Webサーバーサイドプログラミング入門 この講座で学べる内容 ・PHPの基礎知識とMySQL(MariaDB)の基礎が修得できる ・SQLの基礎が修得でき、データベースを利用したプログラムを作成できる ・PHPを利用したプログラムを作成でき、サーバーサイドのWebサービスを開発できる ・データベースと連携した、Webサービスを開発・カスタマイズできるようになる 【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編) おすすめ度:★★★★★ ・【PHP, MYSQL, Apache】ガチで学びたい人のためのWEB開発の基礎(バックエンド編) この講座で学べる内容 ・どのような技術が組み合わさってWEBシステムが動いているのか、その基礎を体系的に学びます。 ・開発に欠かせないWEBの基礎知識について学びます。 ・PHPの基本的な文法について学びます。 ・開発で頻出する正規表現の使い方について学びます。 ・PHPの名前空間、クラスを使った記法について学びます。 ・データベースの実践的な設計手法について学びます。 ・SQLを使ったデータベースの操作方法について学びます。 ・Apacheの設定方法について学びます。 ・サーバーとブラウザのやり取りを可視化し、その仕組みを学びます。 ・Apacheの設定を通してパフォーマンス改善の基礎を学びます。 【HTML,CSS,JS,PHP,Git,Docker】✅ プログラミング初心者OK! ゼロからわかるWebシステム開発 おすすめ度:★★★★ ・【HTML,CSS,JS,PHP,Git,Docker】✅ プログラミング初心者OK! ゼロからわかるWebシステム開発 この講座で学べる内容 ・Webアプリケーションの基礎 ・HTML / CSSを用いた静的なWebページの構築 ・JavaScript を用いたプログラミング入門 ・PHPを用いた動的なWebページの構築 ・ターミナル / コマンド操作の基礎 ・AWS(クラウドコンピューティングサービス)を活用したWebサーバーの構築 ・独自ドメインやSSL/TLSの設定 ・Gitを活用した開発フローの学習 ・Dockerを活用した開発環境の構築 ・プログラミング設計(MVC)/ UnitTest の基礎 PHP 7/8 プログラミング マスター講座 おすすめ度:★★★ ・PHP 7/8 プログラミング マスター講座 この講座で学べる内容 ・PHPを利用したプログラミング開発手法 ・PHP 7以降の新しい言語仕様 ・MAMPを利用したウェブサーバーでの PHP開発手法 ・データベース(MySQL/MariaDB)との連携方法 基礎だけ学ぶ PHPプログラミング講座 おすすめ度:★★★★★ ・基礎だけ学ぶ PHPプログラミング講座 この講座で学べる内容 ・PHPプログラミングの基礎が学べます。 ・Webアプリケーション開発の基礎が学べます。 ・ターミナルでのコマンド操作を学べます。 ・開発環境の作り方など、プログラミングの流れを理解できます。 【3日でできる】はじめてのLinuxサーバー構築入門(CentOS 7・PHP 7・Docker対応) おすすめ度:★★★★★ ・【3日でできる】はじめてのLinuxサーバー構築入門(CentOS 7・PHP 7・Docker対応) この講座で学べる内容 ・さくらのVPS上にCentOS 7をインストールできる ・PHP7で、LAMP環境(Webサーバー)を構築できる ・LAMP環境にWordPressをインストールできる ・DockerでWordPressサイトを作れる Udemy関連記事 ・SQL未経験者にオススメのユーデミー動画講座6選!データ分析したい人向け ・【Python】サーバーサイド初心者にオススメのUdemyのDjango動画講座5選 ・iPhoneアプリ作成入門に最適なUdemyのオススメSwift講座5選 ・【学習効果・高】ブロックチェーン入門に最適なUdemy講座おすすめ6選 ・Typescript入門におすすめのユーデミー講座5選。JS未経験者も可
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

単一責任の原則をLaravelで学習した

単一責任の原則について調べていると「クラスとメソッドは1つの責任だけを持つべき」など諸々調べると出てくるが、概念的にはわかるもののいまいちコードに反映することができていなかったので、モヤっとしていた。 そんな時に、いい感じのサイトに出会えたので勉強がてらまとめておく。 いい感じのサイト↓ Laravelベストプラクティス 実際にコードを見てみる 以下に登場するコードは上記のサイトから転記したものです。 単一責任の原則に反するコード public function getFullNameAttribute() { if (auth()->user() && auth()->user()->hasRole('client') && auth()->user()->isVerified()) { return 'Mr. ' . $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name; } else { return $this->first_name[0] . '. ' . $this->last_name; } } あー。ifの条件がちょっと複雑だけどこうやって書いちゃうな..ってのが正直な感想です。 名前の作成の部分が、複雑でちょっと何しているかわかりにくいなとは思います。 「〜〜〜の修正お願い!」と頼まれても「えーと。ここのifの中身は〜〜〜」「なんか文字列結合しまくってるけどなんやろこれ?」ってなりそうな感じがします。 単一責任の法則に則ったコード // これがメイン public function getFullNameAttribute() { return $this->isVerifiedClient() ? $this->getFullNameLong() : $this->getFullNameShort(); } // 認証認可関連 // ここもうちょいどうにかならんのか?と少し感じる public function isVerifiedClient() { return auth()->user() && auth()->user()->hasRole('client') && auth()->user()->isVerified(); } // 名前の取得① public function getFullNameLong() { return 'Mr. ' . $this->first_name . ' ' . $this->middle_name . ' ' . $this->last_name; } // 名前の取得② public function getFullNameShort() { return $this->first_name[0] . '. ' . $this->last_name; } 感想としてすごいわかりやすいなーと思いました。 getFullNameAttribute()だけ読めば「ああなるほど」となります。 修正を加える際にも、「ここを修正すればいいな」「ここは今回は関係ないな」というのが明確にわかのではないかと思います。 まとめ 綺麗なコードが書きたい。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む