サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
www.utakata.work
はじめに JSON 形式の Web API とは Laravel で JSON を返す基本的な実装 JsonSerializable インタフェースを使う JsonSerializable を使うと便利な点 想定外の例外が発生した場合の対応 Laravel デフォルトのエラー画面 Laravel のレスポンス形式は Accept ヘッダで決まる Laravel デフォルトのエラーハンドリングの実装 エラーハンドラの実装を変更したい場合 render メソッドを修正して想定した Json を返すように その他の修正例 shouldReturnJson メソッドを修正して常に JSON を返すようにする prepareJsonResponse メソッドを修正して JSON のフォーマットを変更する まとめ はじめに この記事は、 Laravel アドベントカレンダー 4日目の記事です。 他にも
phpQuery vs php-html-parser この記事で扱う PHP のバージョン php-html-parser をインストール 実際に使ってみる まとめ phpQuery vs php-html-parser 以前、以下の記事を書きました。この記事では phpQuery というライブラリを使いましたが、phpQuery は3年以上更新が止まっており、最新の PHP に対応してないなど問題がありました。 www.utakata.work 別のライブラリを探していたら、 php-html-parser がかなり良かったので紹介します。 github.com この記事で扱う PHP のバージョン 今回、 PHP のバージョンは 8.0 を使っていますが、7.4 とか、7系でも問題なく動くと思います。 $ php -v PHP 8.0.0 (cli) (built: Nov 30 2
GitHub Actions で VPS にデプロイする Self-hosted runner とは 通常の GitHub Actions Self-hosted runner を使うと Self-hosted runner の注意点 Self-hosted runner の使い方 サーバーをGitHubに設定する run.sh を常時起動させる workflow を書く GitHub Actions で VPS にデプロイする アプリケーションのデプロイするとき パッケージをビルド ビルド結果をデプロイ アプリケーションを再起動 といったことをよくやります。 GitHub公式のCIツールGitHub Actionsを使ってデプロイしたい時、 AWS の ElasticBeanstalk や ECS といった、フルマネージドなシステムを使っていると、イイカンジデプロイシステムが存在するので
はじめに レガシーなプロダクトに Laravel を導入する Laravel について なぜ部分的にでも Laravel に移行していきたいのか Laravel の DI 機能 Laravel の Facade どうやってレガシーコードから Laravel DI と Facade を使うのか Kernel の中身をちょっと見てみる まとめ はじめに この記事は、Qiita の Laravel Advent Calendar 2日目の記事です。 qiita.com 昨日は、 @ucan-lab さんでした。 qiita.com レガシーなプロダクトに Laravel を導入する 僕は最近、あるレガシーなプロダクトに Laravel を導入する、ということをしています。 URLエンドポイントごとに php ファイルがあり 依存性の注入が不可能でユニットテストができない というものになっています
はじめに PSR-12 とは PSR-2 と PSR-12 の違い PHP_CodeSniffer とは IntelliJ / PHPStorm でスタイルチェックする Jenkins でコーディングスタイルチェック まとめ はじめに この記事は PHP アドベントカレンダー 4日目の記事です。 qiita.com 昨日は @taro-hida さんでした。 qiita.com 僕は新卒から5年間ずっとPHPを触っているので、PHPのアドベントカレンダーにはなるべく参加しようと思っています。 PSR-12 とは PSR-12 とは、 PHP のコーディング規約です。 PHP のコーディング規約には PSR-1 と PSR-12 があり、 PSR-1 は Basic Coding Standard https://www.php-fig.org/psr/psr-1/ PSR-12 は Ext
はじめに フィルタリング ログインユーザーを使ったフィルタリング URLによるフィルタリング Query parameter を使ったフィルタリング ジェネリックを使ったフィルタリング フィルタを設定する フィルタの注意点 get_queryset を上書き + FilterBackend REST framework の詳細な仕様 DjangoFilterBackend SearchFilter OrderingFilter 並べ替えできるフィールドを限定する デフォルトの並び順を指定する フィルタのジェネリックを使ってフィルタをカスタマイズする 例 Browsable API インタフェースのカスタマイズ ページネーションとスキーマについて サードパーティーのパッケージ Django REST framework filters パッケージ Django REST framework
Python3から追加された型ヒントについて、よく使う書き方をまとめます。必要があれば随時追記していきます。 Typing, Type annotation, Type hinting, Type hint, 型アノテーション, 型ヒント, タイプアノテーション, タイプヒント etc... どれが正式名称なんだってわからなくなることがありますが、正式名称は「型ヒント」です。英語はType hint。typingは型ヒントのためのモジュールのこと 基本的な型ヒントの書き方 よく使う基本的な型 Dict, Tuple, List intまたはstrを返す、みたいな場合 Optional型 クラスも型ヒント可能 自分自身のオブジェクトを引数に取る場合など 参考 基本的な型ヒントの書き方 関数の引数と返り値を型ヒントする場合は以下のように書きます。 def greeting(name: str)
はじめに PHPUnit 6 にするきっかけ 地道な修正作業 クラスの namespace mt_rand と mt_srand グローバル変数の扱い non-numeric test phpunit6 ochiru アサーションをしていないテスト PHPUnit 6 にしてよかったこと そして時代は はじめに この記事は PHP Advent Calendar 2019 - Qiita 4日目の記事です。 昨日の記事は tzmfreedom さんの PHPでPHPを実装する というすごいタイトルの記事でした。 去年のPHPアドベントカレンダーで PHP 5.6 から PHP 7.2 にする話を書きました。 www.utakata.work この記事がめちゃめちゃ好評で、今でもたまに見られています。PHP 5.6 のサポートはとっくに終わったはずなのですが... ということで今回は PHP
はじめに この記事では「メリット」のみに言及する GraphQLの一番の強みは「型」 型とは よく言われるGraphQLのメリット 本当の強みは 「型」とは なぜコミュニケーションコストが減少するか まとめ スターウォーズ はじめに この記事は GraphQL Advent Calendar 2019 - Qiita の2日目の記事です。 昨日はebikenさんの https://blog.ebiken.dev/blog/operating-graphql-server-with-gqlgen/ でした。 2年前、「新しくクライアント向けのAPIサーバーを作る」ことをしていた。 このとき、「REST」と「GraphQL」どちらを採用するか検討し、結局「REST」を採用したのだが、「RESTで保守性の高いAPIサーバーを作るぞ!」と思った時に、「なるほど、こういう点はGraphQLの方が優れ
はじめに 新しくAPIサーバーを建てるまでの話 新サービスを建てるにあたり考えなければいけないこと 開発を進めるにあたり 言語・フレームワーク・ミドルウェア選定 フレームワークどうするか GraphQLを採用するか、JSONのREST APIにするか サーバー構成をどうするか 構成管理(Infrastructure as a Code) ローカル開発環境はどうするのか CI環境を用意しておくことは重要 コーディング規約や各種規約はどうするのか API仕様作成時の方針について 各環境へのデプロイはどうするのか DDoSやSQLインジェクション対策はどうするのか DDoS対策 CORS, CSRF ミドルウェアの脆弱性 フェイルオーバーの仕組みをどうするか APIサーバーが1台落ちたときに利用者に影響が出ないか 接続先のDBが落ちた時に影響が出ないか サーバー(サービス)監視 ドキュメントをS
はじめに php7ccで検出されない問題とは ハマった点1: count関数の挙動変更 ハマった点2: $array[] で値を追加しようとして壊れる 苦労した点: mysql関数の置き換え 苦労した点2: PHPUnitのバージョンも上げないといけない 逆に嬉しかった点: 型アノテーションの強化 まとめ はじめに この記事は PHPアドベントカレンダー 6日目の記事です。 皆さん、PHP 5.6のセキュリティサポートは2018年12月いっぱいで終了です。つまり、このアドベントカレンダーのカウントダウンがPHP 5.6終了へのカウントダウンなわけです。 PHP5.6からPHP7系に移行しようとしている皆さんはきっとphp7ccを使ってコードのチェックをしているかと思いますが、php7ccでは検出されず、実際に動かしてみないと気づかない問題もあります。 今回はそういったハマった点や苦労した点
背景 php7ccを利用したチェック php7ccのインストール php7cc の使い方 PHP7化にあたり修正が必要だった箇所 古い形式のコンストラクタ 参照渡しnewの削除 preg_replace 関数の e 修飾子が使えなくなった 参考 String, Int という名前のクラスは定義できなくなった まとめ 参考 背景 あるプロダクトをPHP5.6からPHP7にアップデートする対応をしたので、その時に修正した点まとめです。あくまでもその時に修正した点をまとめたもので、PHP7での変更点を全てまとめたわけではありません。 また、mysql系関数が廃止される件については、長くなりそうなので機会があれば別でまとめたいと思います。 php7ccを利用したチェック まずは変更しなければいけない箇所を洗い出すために php7cc を利用します。 php7ccのインストール composer を
もくじ もくじ 概要 チームPENTAGRAMへのペナルティの内容について ルール違反の概要 Dara選手とTussle選手への注意について 中村氏藤田氏の出場停止とは 今回の件についての感想 LJL 2018 Spring split 開催概要 PENTAGRAMのRosterについて 概要 LJLでPENTAGRAM(元Rampage)にペナルティが入りました。 違反者およびペナルティの内容 PENTAGRAM(y’s agency株式会社): LJL 2018 春スプリットWeek 1から5での各マッチにおいて各1ゲーム没収* 他にも以下の人物がペナルティを受けています。 中村洋樹氏(y’s agency株式会社取締役): LJLおよびLJL CSへの出場停止(リーグ開催期間3ヶ月間) 藤田拓也氏(y’s agency株式会社従業員): LJLおよびLJL CSへの出場停止(リーグ開
はじめに PHP で Web ページのスクレイピングをする 利用するのはGuzzleHttpとDOMDocument DOMDocument DOMXpath GuzzleHttp GuzzleHttpのインストール スクレイピングしてみる GuzzleHttpを使ってHTTPリクエストを送る Guzzleで受け取った結果をDOMDocumentに渡して解析する DOMXPath を使ってDOMを取得する DOMの中の属性などを取得する まとめ はじめに この記事は PHP Advent Calendar 2017 - Qiita の22日目の記事です。 昨日の記事は Khigashiguchi さんの PHPでTDD開発するまでに通った道のり - Qiita でした。 PHP で Web ページのスクレイピングをする ページのスクレイピングといえば、RubyでNokogiriを使ってやっ
はじめに この記事は Emacs Advent Calendar 2017 - Qiita の18日目の記事です。 パッケージをインストールしているだけでは物足りない時がある EmacsでPHPのシンタックスハイライトやコードフォーマッタを導入する、といった場合には、適当なパッケージを導入すればすみます。しかし、実際現場で開発をしていると、パッケージの導入だけでは物足りないこともあります。そんな時にカスタマイズできるのがEmacsの良さであります。 とは言え、パッケージを自作するというのはハードルが高いので、ここでは以下の2つを紹介します。 interactive 関数を定義してで簡単な処理をEmacsから実行できるようにする Easy-Mmode で簡単なマイナーモードを定義する interactive 関数を定義して簡単な処理をEmacsから実行できるようにする 簡単にできて地味に便利
はじめに この記事は ドワンゴ Advent Calendar 2017 - Qiita の15日目の記事です。 昨日の記事は ytanaka さんの Goadを使った負荷試験とパフォーマンス分析手法について - Qiita でした。 自己紹介 ドワンゴでニコニコ動画の開発をしています。 *1 去年もアドベントカレンダー書いてました→ LGTM画像を驚くほど簡単に作れるWebサービスをScalaで作る - Qiita DBすき yoshikyoto (Yoshiyuki Sakamoto) · GitHub うたかた/ヨシキ (@yoshiki_utakata) | Twitter 背景 昔々あるところに、以下のような構成のサーバーがありました Webサーバー(アプリケーションサーバー)とDBサーバーからなる。 DBに入っているデータはユーザーIDでシャーディングされている。*2 どのデー
この記事は、 MySQL Casual Advent Calendar 2017 4日目の記事です。 1日前の記事はこちら→MySQL 8.0でカジュアルにウインドウ関数(rank, dense_rank) | キムラデービーブログ 僕の記事は、超初心者向けに、レプリケーションとシャーディングについての説明と、MySQLでのレプリケーションの張り方を解説します。 レプリケーションとシャーディングの違い レプリケーション シャーディング サーバーの台数を増やしづらい 結局両方のDBサーバーにクエリを投げなければいけない時がある 実際にレプリケーションを張ってみる GTIDではないレプリケーション レプリケーション用ユーザーを作成する masterのバイナリログのファイルとポジションを確認する slaveとmasterの間でレプリケーションを張る 試しにレプリケーションされているか確認してみる
プログラマーが覚えておきたい英単語(http://blog.livedoor.jp/lalha/archives/50165797.html)によると インデックスを表す単語の index の複数形についての表現。普通に複数形にすると indexes になりそうなものだが、公開されている API などを見ていると、indices が使われていることが多い。英英辞典などを見ると、indexes も indices も載っているので、両方とも間違いではないと思われる。 とある。 一方で、『SQLアンチパターン』では、 データベース関連の用語として用いられる場合、indexは順番に並べられた情報の集合を意味します。この場合のindexの望ましい複数形はindexesです。他の文脈では、indexはindicatorを意味することがあり、この場合の複数形はindicesです。 とある。 Webli
このページを最初にブックマークしてみませんか?
『www.utakata.work』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く