Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
Github Actionsを使うといろんな作業が自動化できます。また、PHP-CS-Fixerを使うと、PHPのソースコードを定義したフォーマット(コーディング規約)に合わせて整形してくれます。 ということで、今回は、「コミットごとにPHP-CS-Fixerの整形をGithub Actionsで自動化すること」を実現したいと思います。 PHP-CS-Fixerのインストール まずは導入したいと思います。 composer require friendsofphp/php-cs-fixer --dev だけと簡単ですね。 $ composer require friendsofphp/php-cs-fixer --dev Using version ^2.16 for friendsofphp/php-cs-fixer ./composer.json has been updated Lo
こちらはJoolen Advent Calendar 2019 8日目の記事です。 カレンダーのURLはこちら Joolen Advent Calendar 2019 まえがき PHPを書いてるとコーディング規約とか守らない人出てきますよね。 私も気付かず破ってしまうことがあります。 それを防ぐためにPHP-CS-FixerとGitフックを利用して治安保持を目指します。 PHP-CS-Fixerとは コードの整形ツールと呼ばれるものです。 .php_cs.distという設定ファイルにルールを記述することで、コマンド一つでルールに沿ったコードに整形してくれます。 ルールはPHPの配列形式で設定します。 またFinderと呼ばれるものもあり、こちらを設定すると、整形して欲しくないファイルやディレクトリを指定できます。 例: return PhpCsFixer\Config::create()
Composerで依存関係を追加する際に「composer.jsonを編集してrequireに追加してください」といった作業指示が時折見られますが、それはバッドノウハウです。 原則 依存関係を追加・削除するときはコマンドラインから composer require vendor/package で追加 composer remove vendor/package で削除 composer require --dev vendor/package で開発時に必要なものを追加 composer remove --dev vendor/package で開発時に必要なものを削除 本番運用環境と同じバージョン・近い環境で実行する さもなくば、依存パッケージのバージョンを自分で特定しなければならなくなる 依存関係をアップデートするときに引数なしで composer update してはいけない マイ
Ray.Aopを使うと、PHPでもAOP(アスペクト指向プログラミング)が使えます。 PHPの言語仕様にはAOP機能はありません。Ray.AopではどのようにAOPを実現しているのでしょう? AOPとは? 例えば、Ray.Aopを使うと、以下のようにアノテーションを指定することで、そのメソッドをインターセプトし、メソッド実行の前後に処理を追加することができます。 src/HelloService.php <?php class HelloService { /** * @Benchmark */ public function say() { return 'Hello World!'; } } 例えば、以下のようなインターセプターを作成しバインドすれば、メソッド実行の時間を計測して表示できます。 src/Benchmarker.php <?php use Ray\Aop\MethodIn
Google reCAPTCHA の使い方(v2/v3) reCAPTCHA は Google が提供する CAPTCHA(キャプチャ)認証システムで、現在 v2 と v3 が利用できます。以下はそれぞれのバージョンの基本的な使い方や設定方法(HTML の実装方法と PHP を使った検証方法)の覚書です。 reCAPTCHA は無料で利用できますが、1秒間に1000回(1ヶ月に100万回)以上のアクセスがある場合は reCAPTCHA Enterprise を使用するか、フォームに登録して許可を取得する必要があるようです。 reCAPTCHA 関連ページ 公式ページ: https://developers.google.com/recaptcha reCAPTCHA v3: https://www.google.com/recaptcha/intro/v3.html Developer's
PHP 8 の新機能の一つ、Attribute の形式が紆余曲折ありながら最終的に #[] となりました。実用上は #[] 形式だけ覚えておけば良いのですが、シンタックスの変遷は興味深いものだったので残しておこうと思います。 Attribute Attribute 仕様の変遷 8.0.0alpha1: <<>> 8.0.0alpha2 8.0.0beta1: @@ @@ の問題 8.0.0beta4: #[] #[] の注意点 さいごに Attribute PHP 8 の Attribute は、他のプログラミング言語によくあるアノテーションです。クラスやメソッド、プロパティ、関数に付与することで任意の処理を追加することができます。PHP では従来 Doc コメントでこれを指定する文化がありましたが、これを言語仕様として実装したものです。 <?php declare(strict_type
WARNING: you're viewing docs for an outdated version. View the docs for the current version. Filesystem abstraction for PHP (V1) About Flysystem Flysystem is a filesystem abstraction library for PHP. By providing a unified interface for many different filesystems you’re able to swap out filesystems without application wide rewrites. Using Flysystem can eliminate vendor-lock in, reduce technical de
CentOS 7.7 (1908) リリースノートCentOS-7 (1908) Release NotesRed Hat Enterprise Linux 7.7 リリースノート(日本語)CentOSのリリースノートを見ると、タイトルに「7.7」という表記は無く、CentOS-7 (1908) となっていますが、この記事では都合上、CentOS7.7 と表記しています。 CentOS 7.7 (1908) のダウンロードはじめに、CentOSのダウンロードページから CentOS-7-x86_64-Minimal-1908.iso をダウンロードしておきます。 マシン構成VirtualBoxの仮想マシンにインストール ○仮想マシン構成 メモリ:2048MB ○ネットワークデバイス アダプター1:NAT アダプター2:ホストオンリーアダプター ○ネットワーク構成(※ご自分の環境に書換えてく
PHPのmcryptで暗号化されたデータを、Node.jsで復号化しようとしてハマったので、その原因と解決方法メモです。 状況 PHPでAES256-CBCで暗号化した物ですよと言われて受け取ったデータを、Node.jsで復号化しようとするとエラーになりました。 データは暗号化されていて、これ以上どうしようもできないので、暗号化部分のソースを見せてもらうと下記のような感じでした。 <?php function encode($data){ $key = "1234567890123456"; $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); $encoded_data = mcrypt_encrypt( MCR
[Oracle Cloud] AWS SDK をつかって、Object Storage にファイルをアップロードしてみたocioraclecloud はじめに Oracle Cloud Infrastructure(以下OCI)では、Object Storage を提供しています。Object Storage は、AWS S3 互換のAPIを持っています。そのため、AWS SDK の S3 Client を使用して、OCI の Object Storage へ操作が可能です。 別の表現をすると、AWS SDK を使って S3 の操作をするプログラムを持っているときでも、簡単に OCI Object Storage へ流用することが出来ます。 今回の記事では、AWS SDK を使用して、Object Storage へファイルをアップロードする手順とコードを紹介します。 Customer S
これらの中で注目すべきは ‘ と ” と \ です。シングルクォート、ダブルクオートは文字リテラルを作成する為に利用され、\ でエスケープできることです。つまり、文字リテラルの最後に \ が現れると文字列の終端が無くなります。単独で不正なJavaScriptの挿入が可能になる訳ではありませんが、プログラムの構造が破壊される事を意味します。 PHPにはJavaScript文字列用のエスケープ関数が用意されていません。htmlspecialchars()やhtmlentities()で代用している場合も多いと思います。しかし、これらの関数ではJavaScript文字列のエスケープを十分に行う事ができません。 JavaScriptプログラムの構造が破壊される例 <?php $msg1 = 'test string\\'; $msg2 = ');alert(document.cookie); //
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分かかっていた
This is apprently not considered an invalid character range in some (most?) versions of PCRE (the regular expression library PHP uses), but it might have changed recently, and if the PCRE library was upgraded on the server, that might be the reason. 以下部分Google翻訳 PCRE(PHPが使用する正規表現ライブラリ)のバージョンですが、最近変更された可能性があります。PCREライブラリがサーバー上でアップグレードされた場合は、それが理由である可能性があります。 らしいです。 どうやらPHP7.3系からなので PCRE: Implemente
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く