タグ

ブックマーク / qiita.com/koriym (23)

  • BrewWorks: シンプルなPHP開発環境構築 - Qiita

    はじめ PHPでWeb開発を始めようと思ったものの、環境構築で躓いた経験はありませんか? XAMPPやDockerなど、様々なツールがありますが、初心者にとってはそれらの設定自体が大きな壁になることがあったり、簡単なものはその後の柔軟性に欠けたりします。 そこで今回は、Mac用の新しいツール「BrewWorks」を使って、簡単にPHP開発環境を構築する方法をご紹介します。BrewWorksを使えば、複雑な設定なしで、すぐにPHPの開発を始められ、その後の拡張も柔軟です。 BrewWorksのインストール まず、BrewWorksをインストールしましょう。BrewWorksはHomebrewを利用するので、まだHomebrewをインストールしていない方は最新のリリースからpkgパッケージをダウンロードしてインストールしてください。 Homebrewのインストールが完了したら、次にBrewWo

    BrewWorks: シンプルなPHP開発環境構築 - Qiita
    Kenji_s
    Kenji_s 2024/06/26
  • PHPComplete: 複数のPHPバージョンを一括インストール - Qiita

    以前紹介した、Macで複数のバージョンのPHPを同時に使うのニューバージョンです。 複数のPHPバージョンを簡単に一度にインストールできる便利なHomebrewフォーミュラ「PHPComplete」を紹介します。 PHPCompleteとは? PHPCompleteは、複数のPHPバージョンを一度にインストールできるHomebrewフォーミュラです。XDebugやその他のPECLパッケージも含まれています。 他との違い phpenvと違いディレクトリ単位で切り替えたりすることや、`phpbrewのようなインストールツールではありません。 実体は単なるhomebrewフォーミュラです。shivammathur/phpで用意されている複数のPHPを一度にinstallします。グローバルなユーティリティなどなくクリーンです。 主な特徴 PHPだけでなく開発に必要なPECLも同時に複数バージョンの

    PHPComplete: 複数のPHPバージョンを一括インストール - Qiita
    Kenji_s
    Kenji_s 2024/06/26
  • PHPのループ処理を強化するKoriym.Loop - Qiita

    PHPでの効率的なループ処理 PHP開発において、データベースの結果セットやCSVファイルなどの反復可能なデータセットを処理する場面は多々あります。これらのデータを効率的に扱い、テンプレートエンジンのようなループ情報を提供し、さらにエンティティクラスにデータを代入する機能を持つ便利なライブラリがKoriym.Loopです。記事では、このPHPライブラリの基的な使い方とその利便性を紹介します。 Koriym.Loopとは? Koriym.Loopの主な特徴は以下の通りです。 エンティティリストジェネレーターに変換: データセットをエンティティクラスのリストに変換 ループ情報の提供: テンプレートエンジンのようなループ情報(isFirst、isLast、index、iteration)を提供 依存性の注入: エンティティに依存インスタンスを注入可能 イテレーターのサポート: 配列だけでなく

    PHPのループ処理を強化するKoriym.Loop - Qiita
    Kenji_s
    Kenji_s 2024/06/26
  • メディアタイプとALPSプロファイル - Qiita

    こんにちは。 弁護士ドットコムのテクニカルアドバイザーの@koriymです。 この記事は 弁護士ドットコム Advent Calendar 2020の10日目の記事です。 昨日はSREの@t2ynkmrさんの「ECSのデプロイ方法を見直して任意のタイミングでコミットハッシュをタグに使ったイメージをデプロイできるようにした」でした。(すごい事してます!) この記事では初めにメディアタイプの中でもドメイン固有のメディアタイプに注目します。次にプロファイルリンクを使ってアプリケーションセマンティクスを与える方法や、そのプロファイルを情報設計(インフォメーションアーキテクチャ IA)のツールとして使う事を説明します。 記事を通じてインターネットの初期から存在したWebにセマンティクスを与える(対象とするコンテントの意味をマシンに教える)仕組みを、次世代のAPI開発に応用する方法を考察します。 Me

    メディアタイプとALPSプロファイル - Qiita
    Kenji_s
    Kenji_s 2022/07/22
  • 他のPHPからBEAR.Sundayリソースを利用する - Qiita

    概要 他のCMSやフレームワークで作られたPHPアプリケーションからBEAR.Sundayのリソースを利用するのにHTTPリクエストをする必要はありません。composerのパッケージにして他のシステムからrequireしたあとは1行でリソースを利用可能です。 グローバル定数がない完全なDI設計のために複数のBEAR.Sundayアプリケーションが同一のPHPメモリ空間で存在可能です。 利用例 リソースをjsonで取得したい場合は文字列評価します。 $json = (string) (new \BEAR\Package\Bootstrap) ->getApp('MyVendor\MyProject', 'prod-app') ->resource->uri('page://self/index')(['name' => 'Sunday']);

    他のPHPからBEAR.Sundayリソースを利用する - Qiita
  • RESTアプリケーション設計実装手順 - Qiita

    昨日は@kuma_nanaさんのアプリケーションロガーモジュールの試作で学んだことでした。結果だけでなく人が学んだ過程は参考になります。 25日最終日の今日はBEAR.SundayでのRESTアプリケーションを作成する手順を紹介します。CRUD "REST" APIではなく、HALメディアタイプを使ったハイパーメディアAPI、つまり当のRESTアプリケーションの作成手順です。 ワークフロー 下記のように制作進行します。それぞれ簡単に解説します。 プロファイル作成 アプリケーションステートダイアグラム、ボキャブラリ作成 JSONスキーマ作成 FakeJSON作成 Fakeサーバー作成 RESTテスト作成 実装 プロファイル作成 最初にプロファイル (RFC 6906)を作成します。 RFC 6906 https://tools.ietf.org/html/rfc6906 プロファイルはアプ

    RESTアプリケーション設計実装手順 - Qiita
  • __toString()での例外処理 - Qiita

    __toString() メソッド内から例外を投げることはできません。そうした場合、致命的なエラーが発生します。 これでは困ります。 trigger_error メソッドをprivateメソッドに変更し(例えばtoString )、try-catchで呼び出しエラーに変換します。 public function __toString() { try { return $this->toString(); } catch (\Exception $e) { trigger_error($e->getMessage() . PHP_EOL . $e->getTraceAsString(), E_USER_ERROR); return ''; } } テスト phpunitは__toStringでのエラー発生は例外に変換しないので通常の例外に変換されたPHPエラーを期待するテストはうまくいきませ

    __toString()での例外処理 - Qiita
    Kenji_s
    Kenji_s 2018/05/29
  • BEAR.SundayとDDD - Qiita

    アプリケーション設計 マニュアルのチュートリアルの記事などではリソースのリクエストメソッドで直接SQLを操作していますが、実際にはアプリケーションをどのように設計、実装するかはアプリケーション開発者の仕事です。 この記事はコンテキスト境界、ディレクトリ構成について考えるのフォローアップ記事で、BEAR.SundayでDDDを導入するときにどのような構成になるかを考えます。 PHP DDD Cargo Sample PHP DDD Cargo Sampleとはエリック・エヴァンスのドメイン駆動設計で紹介されているパターンを実際に使用して作られたPHPのサンプルアプリケーションです。 このサンプルはPSR-7とPSR-15を使ったzend-expressive + Doctrine ORMで構成されていますが、これをBEAR.Sundayで利用する事を想定します。 DDD Compoentsフ

    BEAR.SundayとDDD - Qiita
  • phpの実行開始が遅い場合の対処 - Qiita

    この2つの実行で体感で分かるぐらい速度差がある時は特定のPHP拡張の初期化が原因です。liipのPHP v7.1.7とMacOS Sierraで問題があり1秒ぐらいかかってました。 iniファイルで読まれてるPHP拡張を外して確かめました。 Configuration File (php.ini) Path: /usr/local/php5/lib Loaded Configuration File: /usr/local/php5/lib/php.ini Scan for additional .ini files in: /usr/local/php5/php.d Additional .ini files parsed: /usr/local/php5/php.d/10-extension_dir.ini, /usr/local/php5/php.d/20-extension-opc

    phpの実行開始が遅い場合の対処 - Qiita
    Kenji_s
    Kenji_s 2017/09/09
  • 必要な時にのみxdebugをオン - Qiita

    Xdebugはパフォーマンスにインパクトを与えます。来、Xdebugが必要なのはテストカバレッジやプロファイル取得、トレースなどを行うデバック実行の時のみです。この記事では必要な時にのみXdebugをオンにして、普段はオフにする方法を紹介します。Composer と単体テストを含むコマンドラインスクリプトをはるかに高速に実行できます。 Xdebugをオフ 普段はオフにします。php --iniでphp.ini(またはxdebug.ini)の場所を調べコメントアウト。

    必要な時にのみxdebugをオン - Qiita
  • PHPの例外 - Qiita

    定義済み例外とSPL例外 PHPにはPHP体が持つ定義済み例外とPHPに標準でバンドルされるStandard PHP Library(SPL)の例外のSPL例外の2種類の例外があります。SPLは標準で組み込まれるのでPHPの機能として標準的に使うことも可能ですが、マニュアルでも個別のページを持っています。 定義済み例外 SPL例外 SPL例外 SPLの作者はPDOなど多数のパッケーのleadを務められているMarcus Börgerさんです。(PECLサイト参照 https://pecl.php.net/user/helly) MarcusさんがSPLのために作成したスライドStandard PHP Libraryから例外の部分を2つ抜粋します。 「守るべき3つのルール」 例外は例外の時に使用する (Exceptions are exceptions) 制御構造のために例外を用いない (

    PHPの例外 - Qiita
  • PHPのV8jsでReactJs-ReduxアプリをSSR - Qiita

    (このエントリーは、エキサイトAdvent Calendar 2016 の 12/02の2日目の記事です。エキサイト初の参加ということで私も参加しました。) PHPのV8Jsを使ってRedux-ReactJsアプリケーションをサーバーサイドレンダリングするredux-react-ssrを紹介します。 用語 V8Js SSR Redux V8Js V8JsはPHPの機能拡張でGoogle V8 JavaScript EngineをPHPに組み込みます。PHPから直接JSのコードが実行できます。 $v8 = new V8Js(); /* basic.js */ $js = <<< EOT len = print('Hello' + ' ' + 'World!' + "\\n"); len; EOT; try { var_dump($v8->executeString($js, 'basic.j

    PHPのV8jsでReactJs-ReduxアプリをSSR - Qiita
  • You are running composer with xdebug enabled. This has a major impact on runtime performance.対策 - Qiita

    You are running composer with xdebug enabled. This has a major impact on runtime performance.対策PHPxdebugComposer 新しい記事「必要な時にのみxdebugをオン」を投稿しました(2017/05/19) Composer 1.3.0 - https://github.com/composer/composer/blob/1.3.0/CHANGELOG.md Fixed ext-xdebug not being require-able anymore due to automatic xdebug disabling 自動で無効化されるようになったので、ユーザー側のワークアラウンドはもはや不要になったようです。 以上はコメント欄で@tadsanさんが教えてくれた内容です。 compo

    You are running composer with xdebug enabled. This has a major impact on runtime performance.対策 - Qiita
  • BEAR.Sundayのフォーム - Qiita

    フォームバリデーションはバリデーションするメソッドに@FormValidationとアノテーションとすることで行われます。 Formクラス Formのページを作成するために最初にFormクラスを作成します。Formクラスはフォームの登録と初期化、ルール適用、HTML表現などフォームに関連する要素が1つに集約されています。 class MyForm extends AbstractForm { /** * {@inheritdoc} */ public function init() $this->setField('name') ->setAttribs([ 'id' => 'name', 'name' => 'name', 'size' => 20, 'maxlength' => 20, 'class' => 'form-control', 'placeholder' => 'Your

    BEAR.Sundayのフォーム - Qiita
  • BEAR.Sunday 2015 - Qiita

    v1.0.0 安定板リリース (5/31) PSR7対応 Excite ママなど幾つかのBEAR.Sunday v1.0アプリの登場。 データベース、ページャーライブラリ Sirenなどのハイパーメディアサポート Webフォーム PHPStormプラグイン 今年は5/31にBEAR.Sunday v1.0をリリースしました。その後は実際の運用での細かな修正や幾つかのライブラリが追加され、アプリケーションが幾つかリリースされました。年内開発終了して来年以降にリリースされるアプリケーションもあります。 BEAR.Sundayではデータベースアクセスやテンプレートエンジンといった機能を提供をするのがライブラリ、それらの機能を結びアプリケーションに制約をもたらすのがフレームワークと考えています。 フルスタックという伝統的なフレームワークの形から、ここ数年で機能が単体で使えるコンポーネント志向のフレ

    BEAR.Sunday 2015 - Qiita
  • OSXにphp7+xdebugをインストール - Qiita

    ⚠︎ 現在はliipのphpをインストールするとxdebugがインストールされ個別にインストールする必要はありません。 ⚠︎ 何かの理由でxdebugをソースインストールしたい場合のみ有用な記事です。 php7のインストール バイナリパッケージをインストール

    OSXにphp7+xdebugをインストール - Qiita
  • composer testでQAツールの実行 - Qiita

    概要 phpunit, phpcs, phpmdをcomposer testコマンドで簡単に実行できるようにします。 準備 ※ 現在のBEAR.Sundayのアプリケーションスケルトンはこの準備は完了していています。 composer.jsonに以下のエントリーを記述します。 "require-dev": { "phpunit/phpunit": "~4.8", "squizlabs/php_codesniffer": "~2.3", "phpmd/phpmd": "~2.3" }, "scripts" :{ "test": [ "php vendor/phpmd/phpmd/src/bin/phpmd src text ./phpmd.xml", "php vendor/squizlabs/php_codesniffer/scripts/phpcs", "php vendor/phpun

    composer testでQAツールの実行 - Qiita
  • composerパッケージのファイル構成 - Qiita

    ディレクトリ構成 Packagistに登録されているパッケージはある程度標準的なファイル/ディレクトリ構成がありますが、作者や依存するフレームワークなどによって微妙に違います。 標準的でCI用の設定が整ったパッケージ構成とは?という点で検討した現在の構成を紹介します。(Auraフレームワークが採用している構成に近いものでBEAR.Sundayで採用しているものです) パッケージフォルダ名 .(ドット)区切りで{ベンダー名}.{パッケージ名}にしています。Auraと同じです。 bin (あれば)PHP実行ファイルを格納します。 src libs, libなどもありますがsrcが一般的です。srcのクラスファイルは例外やアノテーションなどを除いてサブディレクトリを作らずにフラットに設置します。traitはセッターインジェクションのコードを除いて原則使いません。 tests bootstrap.

    composerパッケージのファイル構成 - Qiita
  • BEAR.SundayでRESTful Web API - Qiita

    BEAR.SundayでHALを使ったRESTfulなWeb APIを作成します。 1. アプリケーションスケルトンをインストール アプリケーション名はPSRに準拠したMyVendor.MyApiとしてスケルトンをインストールします。 composer create-project bear/skeleton -n MyVendor.MyApi ~1.0@dev cd MyVendor.MyApi composer install

    BEAR.SundayでRESTful Web API - Qiita
  • Ray.Di コンストラクタ束縛 - Qiita

    Ray.Diには@Injectアノテーションの付いていないサードパーティーのクラスにも使用できるコンストラクタ束縛 (toConstructor binding)という束縛があります。 実装例 複数のオブジェクトの利用でそれぞれは同じクラスでインスタンス化されていますが、別のオブジェクトのケースがあります。例えば接続先DBの違う複数のDBオブジェクトなどです。これは一般に ロボットの足問題 (robot legs problem)として知られる問題です。 要件 設定の異なるSolrClientを利用するためのSolarModuleを作成することを考えます。SolarModuleのコンストラクタに渡す設定値は以下のとおり。 <?php require dirname(__DIR__) . '/vendor/autoload.php'; use Ray\Di\AbstractModule; u

    Ray.Di コンストラクタ束縛 - Qiita