タグ

aspectに関するtakaya030のブックマーク (7)

  • アスペクト指向プログラミングって何?

    古今東西、さまざまな○○指向が存在していますが、最近アスペクト指向プログラミング(AOP)という用語が存在していることを知りました。 調べてみたところ、JavaのSpring Frameworkでは一般的に使われてそうな概念のようです。 ということで、AOPについて調べてみました。 アスペクト指向プログラミング(AOP)とは AOPとは、横断的な関心事(=複数の場所から利用される共通処理)をビジネスロジックから分離することで、ソフトウェアのモジュール性を高めるためのプログラミングパラダイムです。 例えば、以下のようなコードを書く場面があるのではないでしょうか。 class TestClass { public void MethodA(string filePath) { // filePathに対する検証処理 // 体のロジック // ... // ログ出力 } public void

    アスペクト指向プログラミングって何?
  • PHPもアトリビュートでAOP!! - スタイル・エッジ技術ブログ

    はじめに こんにちは!未だにPHP8.1で登場したEnumに心躍らせているSHISOです。 さて、今回はJavaのSpringフレームワークでできるアスペクト指向プログラミング(AOP)に憧れ、PHP8.0でリリースされたアトリビュートを使用して同じようにAOPを実現させてみました。 (ちなみにPHP8.0未満であってもLaravel 5.x~8.xをお使いであれば、Laravel-Aspectというパッケージを使ってAOPできるそうなので、興味のある方は試してみてください。) 先に今回の実装サンプル一部をチラ見せすると、クラス内に個別のgetter処理を書かずとも、アトリビュートの指定だけで値参照ができるようになったりします✨ <?php class ExampleClass extends BaseClass { public function __construct( #[Gette

    PHPもアトリビュートでAOP!! - スタイル・エッジ技術ブログ
  • PHP8で面倒な Getter 定義から卒業しよう | FOURIER TECH BLOG 〜 IT技術ブログ 〜

    PHPでクラスのプロパティを定義する際、Getter を定義するのが面倒と感じたことはありませんか? 1ヶ所や2ヶ所程度であれば特に感じないかもしれませんが、これが5ヶ所、10ヶ所件と増えるにつれ同じような記述をする必要があり面倒に感じるかと思います。 この面倒な作業をPHP8から導入されたAttributesを使用し解決するのがこの記事の目的になります。 はじめにまずは今までのGetterの定義方法から見ていきましょう。以下がその例になります。 class Sample { private int $id = 1; public function id(): int { return $this->id; } } いかがでしょうか? ただプロパティの値を返すだけなのに3行も使用してしまっています。もしプロパティの数が多くほとんどのプロパティにGetterを定義するとしたら、面倒かつクラス

    PHP8で面倒な Getter 定義から卒業しよう | FOURIER TECH BLOG 〜 IT技術ブログ 〜
  • ユースケースによるアスペクト指向(Laravel編) - Qiita

    この記事は株式会社アイスタイルアドベントカレンダーの18日目の記事です。 弊社ではPHPをメインで利用しています。 一部のプロジェクトでは表題のアスペクト指向を用いて開発しています。 アスペクトのおさらい 横断的関心の分離をする技術で、アスペクト(AOP)はオブジェクト指向プログラミング (OOP)を補完する技術の一つです。 AOPはポイントカットとアドバイスを利用して定義を行います(AspectJ)。 ポイントカット 後述するアドバイスがどのような条件で実行するかを定義するものです。 例えば、 Hogeクラスのfugaメソッドが実行される時 Hogeクラスの全てのメソッドが実行される時 Hogeクラスのメソッドのうち、setというプレフィックスが付いてるものが実行される時 などがあります(ジョイントポイント)。 言語やライブラリによって定義されているものなどがありますので、 それぞれのラ

    ユースケースによるアスペクト指向(Laravel編) - Qiita
  • Laravel Aspectで始めるアスペクト指向プログラミング - Qiita

    先日会社のLaravelプロジェクトLaravel Aspectを導入したのでQiitaでも紹介します。 2年前くらいにLTで紹介して、今ググると多分上位に私のスライドがでるんですが、肌感でユーザーがまだまだ少ないなーと感じているので良さを伝えたいと思います。 Laravel Aspectの前にアスペクト指向プログラミング(AOP)について簡単に解説します。 AOPとは特定の振る舞いをアスペクトという機能単位で分離して記述し、プログラムのあらゆる箇所で適応する手法です。 オブジェクト指向プログラミングだけではうまく分離できない横断的関心事を分離できるようにする補助的な役割として利用されることが多いです。 横断的関心事 トランザクションやロギングなどのプログラムのあらゆる箇所に利用されるが、単一オブジェクトやメソッドに切り出して定義するのが困難な機能を横断的関心事と呼びます。 public

    Laravel Aspectで始めるアスペクト指向プログラミング - Qiita
  • 自分流Laravelディレクトリちら見せ - ytake blog

    いつも通りTwitterLaravelの話をしていたところ、 匿名でいいからディレクトリ構造シェアしてほしいw— たきゃはし (@takahashiyuya) 2016年5月2日 ということがあり、とりあえず自分流のLaravelを紹介します。 2014年にその時の自分の開発プロジェクトなどで利用していたものをまとめました。 blog.comnect.jp.net 新原さんのエントリも参考にしてみると良いでしょう。 www.1x1.jp Laravelは開発者が自由に組み合わせて、自由に構築できるフレームワークという側面があり、 ある程度慣れてきた頃に、みなさん色々試行錯誤すると思います。 RoRっぽさを求めている方はそれの色を求め、 Javaや、エンタープライズ向けのものを求めている方はその色になっていくと思います。 あれから月日が流れ、折角ですので2016年版として自分流のLarav

    自分流Laravelディレクトリちら見せ - ytake blog
  • 普通じゃないモッキングフレームワークAspectMockがパワフル過ぎる — A Day in Serenity (Reloaded) — PHP, CodeIgniter, FuelPHP, Linux or something

    PHPUnitの設定 続いて、PHPUnitからAspectMockを使うための設定をします。まず、backupGlobalsを必ずfalseにします。 phpunit.xml <phpunit bootstrap="bootstrap.php" backupGlobals="false"> そして、tearDown()メソッドで登録したテストダブルを削除するようにします。 TestCase <?php use AspectMock\Test as test; abstract class TestCase extends \PHPUnit_Framework_TestCase { protected function tearDown() { test::clean(); // 登録したテストダブルを削除 } } AspectMockの使い方 それでは、AspectMockの使い方を見て

  • 1