Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

何故かJavaは敬遠される!? 筆者はIT業界に努めて17年ほどです。 SESとして働きに出ることが多かったのですが、近年はWebエンジニアとして PHP(Laravel)を使った開発が多くなってきています。 そんな開発現場ですが、プログラミング言語の話題に上がると 「Javaはわからない」 「Javaって難しいんでしょ?」 「環境構築がなぁ・・・」 なんて話をよく聞きます。 私はJavaの方が経験した期間が長かったので、特にそういった苦手意識は無いのですが Laravelの現場でもそういった話を聞くので、 「フレームワークの特性や、コードの書き方は結構似ているところが多いのに、何でみんな苦手なんだろう?」 と思ってしまうのです。 今回はそのギモンについて、私が思っていることを書いていきます。 (注:Java嫌いな人を論破したいわけではありませんw) 原因その1:インフラ構造上、難しいと思
<?php declare(strict_types=1); enum AccountStatus { case Active; case Inactive; case Leave; } var_dump(AccountStatus::Active); // enum(AccountStatus::Active) var_dump(AccountStatus::Active->name); // string(6) "Active" var_dump(AccountStatus::cases()); // array(3) { // [0]=> // enum(AccountStatus::Active) // [1]=> // enum(AccountStatus::Inactive) // [2]=> // enum(AccountStatus::Leave) // } <?php d
※メモ程度のコードです。 ジェネレータ (PHP 5 >= 5.5.0, PHP 7) 概略 PHP5.5から導入された yield を return の代わりに記述することでループの中で都度値を返却できる ある共通処理を関数化した際、配列Aを配列Bに代入してゴニョゴニョ・・など2つ配列を作ることでメモリを食ってしまうのをジェネレータ構文を使うことで改善できる(ことがある) 構文 <?php echo "-------basic_sample_1--------\n"; /*ベーシックなサンプル その1 1から3までの数値を出力する*/ function basic_sample_1 () { $i = 0; //初回は 0 // yieldは終了ではなく保存ポイント yield $i; //保存ポイント! 値を一旦戻す 0 //一回目ここまで ↑ //二回目ここから ↓ $i++; //
PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2020/11/26に リリースされました 。 2020/08/04にPHP8.0がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2020/11/26にPHP8.0がリリースされる予定です。 というわけでPHP8.0で対応することが決まったRFCを見てみましょう。 RFC JIT 賛成50反対2で受理。 PHP8の目玉、JITです。 PHPをネイティブコードにコンパイルし、さらにコンパイルした結果を次のリクエストに使い回すことができます。 速度はOpcacheがオンの状態から平均的に1.3-1.5倍程度、さらにCPUバウンドな処理なら3倍以上という劇的な高速化が見込めます。 Opcache無しからだと、1分かかっていた
PHP8.2 / PHP8.1 / PHP8.0 / PHP7.4 2021/11/26にリリースされました 2021/07/20、PHP8.1がフィーチャーフリーズしました。 言語機能に関わるような機能の追加・変更が締め切られたということです。 今後はデバッグを繰り返しながら完成度を高めていき、2021/11/25にPHP8.1.0がリリースされる予定です。 というわけでPHP8.1で実装されるRFCを見てみましょう。 RFC Fibers 賛成50反対14で受理。 Fiberです。 PHPで非同期コードを書けるようになります。 $fiber = new Fiber(function (): void { $value = Fiber::suspend('fiber'); echo "レジュームした。$value: ", $value, "\n"; }); $value = $fiber
OPcacheとは OPcacheとはコードをコンパイルし、共有メモリへ保存しておく仕組みのことです。 PHPはインタプリタですが、この仕組みによってリクエストごとにスクリプトを読む必要がなくなり、パフォーマンスの向上が期待されます。 インストール 本記事ではWindowsのphp 7.2.4で設定を行っています。あらかじめご了承ください。 準備 特になし(さすがにPHPは入ってますよね?) 設定 php.iniで以下の設定を記述します。 # Linux,Macの場合 zend_extension=/[それぞれのPHPのextensionのパス]/php_opcache.so # Windowsの場合 zend_extension=C:\[それぞれのPHPのextensionのパス]\php_opcache.dll [opcache] opcache.enable=1 opcache.en
PHPのtraitはそれ自体ではnewできないので、一見すると単体テスト不可能と思われるが、traitをuseした普通のクラスをテスト用に作っておき、そのクラスに対して単体テストを実行すれば良い。 <?php trait Greetable { public function hello(int $repeat): string { return str_repeat('Hello!', $repeat); } } class GreetableBeings { use Greetable; } class GreetableTest { public function testHello() { $g = new GreetableBeings(); assert($g->hello(1) === 'Hello!'); assert($g->hello(2) === 'Hello!Hel
はじめに この記事の対象者は、「PHPはやったことあるけど、フレームワークはあまり使ったことないよ」って人を対象にしております。 フレームワークの構成を壊さずにプロジェクトを遂行できるように少し豆知識を。 と、言う筆者も実は昔。。。 あんまり理解せずにフレームワークの構成を壊していろいろ作っちゃっていました。。。 しっかり構成に従って効率的にコーディングしていきましょう!!! その上で重要になるのがいろいろありますが、今回紹介するのはcomposer dump-autoloadです。 フレームワークを使用せずにPHPでスクラッチ開発をしていると、よくソースの頭に書くものがありますよね? それはコチラ!
目次 はじめに 目標 クライアントIDを取得する クライアントサイドのコード(JavaScript) サーバサイドのコード(PHP) 実行してみる お世話になったサイト はじめに WEBアプリを作っていて、「Googleアカウントでログイン」が実装できたので備忘録として残しておく。 実装にあたっては、Googleの公式ドキュメントを大いに参考にしました。動画も一緒に載っていて、日本人が解説しています。 PHPとJSを使って実装しています。サーバサイドの言語は自分はPHPを使いましたが、公式ドキュメントにはNode.jsとJavaとPythonのコードも載ってました。自分はPHPしか試していません。 必要なもの テキストエディタ サーバ ブラウザ Composer PHP(Composerを使うので) 目標 GoogleアカウントでログインされたユーザのGoogleアカウントのプロフィール情
はじめに 今回はアクセサとミューテタの基本について解説します。 そもそもミューテタとは? そもそもミューテタってなんなんでしょうか? 簡単にいうとデータをデータベースに保存する時に走る一定の処理のことです。 そもそもアクセサとは? そもそもアクセサとはなんでしょうか? 簡単にいうとデータをデータベースから取得する時に走る一定の処理のことです。 使用例 例えば、都道府県をデータベースに保存する時を考えます。 そのまま文字データとして都道府県を保存することもありますが、多くの場合は整数に置き換えて保存します。(1が北海道、2が青森など都道府県それぞれに対応させた整数を設定する。こうする理由は文字データより圧倒的に整数の方がデータ容量が少ないからデータベースを圧迫しないからです。) しかし、データベースにデータを保存する時に変換して、取得した時も変換してと毎回処理を書くのはめんどくさい。。。無駄
CakePHP3のChronosの公式ドキュメントを翻訳したので、 その機能についてご紹介します。 以前の記事CakePHP3公式ドキュメントの翻訳が一石N鳥だった件でもご紹介しましたが、 私は「CakePHP3翻訳会」への参加を通じて翻訳を行なっていて、 その中のひとつとしてChronosを翻訳しました。 Chronosとは Chronosは、CakePHP3.2から導入された、日付時刻を扱うライブラリです。 公式のリリースには以下のように書いてあります。 Carbon ライブラリを Chronos に置き換え Carbon ライブラリは cakephp/chronos に置き換えられました。この新しいライブラリは Carbon のフォークで、依存関係は追加されていません。カレンダーのdateオブジェクト、イミュータブルなdateオブジェクトとdatetimeオブジェクトを提供します。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く