タグ

ブックマーク / blog.shin1x1.com (10)

  • 「明日から使えるアーキテクチャ 独立したコアレイヤパターン」を発表しました / PHP カンファレンス仙台 2019 - Shin x Blog

    仙台初開催の PHP カンファレンス仙台 2019 にて「明日から使えるアーキテクチャ 独立したコアレイヤパターン」を発表しました。 発表資料 サンプルコード: https://github.com/shin1x1/phpconsen2019 Toggeter: https://togetter.com/li/1313010 独立したコアレイヤパターンについて発表しました。当初は、昨年末に東京で行われた PHP カンファレンス 2018 で発表したものと同じ内容にしようと考えていたのですが、下記のような考えももあり、資料を大幅に変更しています。 色々なフィードバックを受けて、話して、現場で適用してと繰り返す内に、このパターンにおいて質でないものが濾過されていって、コアの部分(レイヤの名前じゃなく)が残ってきた。そのあたりを今日話したい。— Masashi Shinbara (@shin1

    「明日から使えるアーキテクチャ 独立したコアレイヤパターン」を発表しました / PHP カンファレンス仙台 2019 - Shin x Blog
    tarchan
    tarchan 2019/11/21
  • Laravel におけるリポジトリ実装のポイント - Shin x Blog

    Laravel を使った開発でも、ドメインロジックと RDBMS などの永続化層へのアクセスを分離するためにリポジトリパターンを採用するケースが増えてきました。 ただ、Laravel には Eloquent という Active Record タイプの ORM があるので、これとリポジトリをどのように組み合わせるかで悩んでいる人が多いようで、これまで開発現場や勉強会などで質問を受けることがありました。 エントリでは、リポジトリを実装してきた経験を元に、私が考える実装のポイントをご紹介します。 1. ドメインデータの入出力にリポジトリパターンを使う 2. メソッドの型宣言にドメインデータを指定する 3. 機械的に CRUD メソッドを実装しない 4. Eloquent を利用したリポジトリクラスの実装 5. 複数テーブルを扱うリポジトリ 6. Paginator との連携 さいごに 1.

    Laravel におけるリポジトリ実装のポイント - Shin x Blog
  • パフォーマンスを意識して正規表現を書く - Shin x Blog

    正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。PerlRubyPythonJava、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ

    パフォーマンスを意識して正規表現を書く - Shin x Blog
  • PHPにおけるhttpoxyの対応 - Shin x Blog

    HTTP リクエストに任意の値をセットすることで、Web アプリケーションからの HTTP 通信を傍受したり、中間者攻撃(Man-in-the-Middle)を可能にする脆弱性が見つかっています。 専用サイト httpoxyという名前が付けられ、専用サイトが立ち上がっています。詳細は、このサイトが詳しいです。 httpoxy.org 攻撃内容 アプリケーションからHTTP通信を行う際に、環境変数HTTP_PROXYの値を、HTTPプロキシとして見るライブラリがある。 HTTPリクエストにProxyヘッダを付けられると、環境変数HTTP_PROXYにその値がセットされる。(これは、CGIの仕様) つまり、任意のプロキシを外部から指定できてしまうので、通信内容の傍受や偽装ができてしまう。 対象となる PHP アプリケーション HTTP リクエストを受けて動作する PHP アプリケーション アプ

    PHPにおけるhttpoxyの対応 - Shin x Blog
    tarchan
    tarchan 2016/07/19
    >任意のプロキシを外部から指定できてしまうので、通信内容の傍受や偽装ができてしまう。
  • 「SOFT SKILLS」を読む前に知っておくと良いこと - Shin x Blog

    ソフトウェア開発者の間で、話題の書籍「SOFT SKILLS」を読みました。ひと通り読んで感じたことなど書いてみます。 同じ内容の文章を読んでも、それを誰が書いたかによって受ける印象は変わります。 まさに、それを実感したでした。 ソフトウェア開発者が書いたビジネス書 このは、「ソフトウェア開発者」が語る「ソフトウェア開発者の人生マニュアル」です。ざっくり言えば、「ソフトウェア開発者向けのビジネス書」ともいえるでしょう。 内容自体は、ビジネス書を数冊読んだことがある人であれば、それほど目新しいというわけではありません。実際、書籍内でも筆者が参考にしているビジネス書(ロバート・キヨサキの「金持ち父さん 貧乏父さん」やデール・カーネギーの「人を動かす」など)が紹介されており、こうした書籍から影響を受けた思考や行動がつづられています。 ビジネス書は、私も嫌いではないので、たまに読みます。やはり

    「SOFT SKILLS」を読む前に知っておくと良いこと - Shin x Blog
  • 「制約でコードに秩序を」を PHP カンファレンス福岡 2016 で発表してきました #phpconfuk - Shin x Blog

    PHP カンファレンス福岡 2016 で、「制約でコードに秩序を」という発表を行ってきました。 発表資料 サンプルコードは、下記です。 github.com セッションでは、資料は最低限のものにして、PhpStorm によるライブコーディングをしながら解説するというスタイルで進めました。 抽象的な話より、具体的にコードを目にする方が伝わりやすいであろうという事と、私自身もコードを書きながら話す方がやりやすいので、このスタイルにしました。 公開している資料は、コードと解説、さらに省いた内容などを盛り込んだものです。 初心者〜中級者向けセッションということで、PHPコードはとりあえず書けるようになって、これからより格的な開発に入る方や、こうした制約を活用していない方などに参考にして貰えれば嬉しいです。 うちの新人はちゃんとみているだろうか。。。みておいてほしい。 "制約と上手く付き合う" #

    「制約でコードに秩序を」を PHP カンファレンス福岡 2016 で発表してきました #phpconfuk - Shin x Blog
  • CircleCI + Docker で PHP 7 と PhantomJS 使って CI する - Shin x Blog

    CircleCI で、とあるプロジェクトの CI 環境を作りました。このプロジェクトは、PHP 7 で開発しているのですが、まだ CircleCI 公式では PHP 7 がサポートされていません。 そこで、Docker を使って、PHP 7 + PhantomJS 環境を構築しました。 構成 PHPUnit と Codeception のテストを実行する環境を構築します。 コンテナの構成は、下記のようになります。 PHP 7 コンテナ PhantomJS コンテナ PostgreSQL コンテナ * 2 これらのコンテナは、docker-compose でまとめて構築、実行します。 PHP 7 コンテナ PHP 7 + Apache のコンテナです。Docker Hub オフィシャルの php:7.0-apache ベースにして、Laravel 5.1 実行に必要な拡張の追加や設定を行った

    CircleCI + Docker で PHP 7 と PhantomJS 使って CI する - Shin x Blog
  • PHP 7 でコードを書いたファーストインプレッション - Shin x Blog

    正月の書き初めとして、PHP 7 でコードを書いてみました。 年始から始まるプロジェクトPHP 7 に取り組む予定なので、素振りも兼ねています。実際に書いて感じたことを挙げてみます。 書いたコード 今回書いたのは、Markdown からコードブロックを抜き出して、それぞれをファイルに出力するコードです。 https://github.com/shin1x1/MarkdownCodeExtractor 書いた動機は、Markdown の書籍原稿からコード部分を抜き出して、サンプルコードとして公開するためです。 原稿は最終的には PDF になるので、そこでの修正は手で加える必要があるのですが、大まかにコードをファイルに落とすだけでもかなり楽なので、サクッと作りました。 「Laravel リファレンス 」の私の担当原稿からコードを抜き出したのですが、200 ものコードファイルを一気に生成でき

    PHP 7 でコードを書いたファーストインプレッション - Shin x Blog
  • CI で PHPコードスタイルをチェックする Style CI - Shin x Blog

    PHP コードスタイルのチェック、整形を行うサービスである Style CI を紹介します。 このエントリは、Laravelリファレンス Advent Calendar 2015 の22日目です。 Laravel 公式が利用しているサービス Style CI は、Alt Three が運営している GitHubホストしている PHP コードのコードスタイルをチェックするサービスです。 GitHub へコードを push すると、コードチェックが行われ、適合しないコードがあればエラーになります。メールによるエラー通知も飛んできます。 Style CI のサイトに行くと修正が必要が箇所のコードが提示されます。 shin1x1/phpkansai-20151216-demo - StyleCI チェックできるフォーマットは、インデントやブレース位置、文字エンコーディングなどの基的なものから

    CI で PHPコードスタイルをチェックする Style CI - Shin x Blog
  • 「いまどきのPHP開発現場 -2015年秋-」を発表してきました&参考資料まとめ - Shin x Blog

    2015/10/03 に開催された PHPカンファレンス2015 にて、「いまどきのPHP開発現場 -2015年秋-」という発表を行ってきました。 このエントリでは、発表資料とセッションで取り上げたツールやサービスを利用する上で参考となる資料をご紹介します。 発表資料 いまどきのPHP開発現場 -2015年秋- from Masashi Shinbara 個々のツールやサービスは紹介するに留めて、それぞれの関係性や流れをまとめた内容にしました。時間があれば、PhpStormで書いたコードを git push して、CI が動いて、Heroku にデプロイといった一連の流れが見られるデモをしたかったのですが、それはまた機会があれば、ということで。 このセッションは、ラスマスさんの次のセッションだったのでした。満員のセッションの後、ガラガラになったらどうしよと思ってましたが、多くの方に参加頂け

    「いまどきのPHP開発現場 -2015年秋-」を発表してきました&参考資料まとめ - Shin x Blog
    tarchan
    tarchan 2015/12/18
  • 1