PHP Conference Japan 2022 https://fortee.jp/phpcon-2022/proposal/8f29f20e-1275-49eb-89c0-fe684e28d110
こんにちは! はじめまして! 2020年7月からPIECE事業部でエンジニアをさせてもらっています。 野澤です。 今回、PIECEというサービスのリニューアルを担当させてもらったのでその時のことについて書きたいと思います! まだ若輩者なので至らない点が多々あると思いますが フルリニューアルってどんな事したんだろう〜? Hajimariのエンジニアはどんな仕事をしてるんだろう〜? って思った人はぜひ読んで見てください! ※ドメイン駆動設計の説明も書いたのですがボリュームが多くなってしまいました… ドメイン駆動設計について概要知りたいという方は是非読んでみてください。 クリーンアーキテクチャの説明やモデリングのやり方などは説明していません。 ご了承ください。 PIECEリファクタリングプロジェクトの概要 PIECEとはどのようなサービスなのか リニューアルの目的 リニューアル施策 ドメイン駆動
これからLaravelを利用するのであれば、どのバージョンを使えばよいでしょうか? 現在(2020年9月時点)の状況であれば、6もしくは8のいずれかを選択することになります。どちらを選ぶかはアプリケーションの要件次第です。長期間安定したバージョンを利用したいのであれば6を、最新機能を利用していきたければ8を選ぶことになります。 この選択はさらに、セキュリティフィックス期限が切れた後にも影響します。例えば6を選択した場合、おそらく長期間利用することになるので、次にバージョンを上げる際は最新バージョンとの差異が大きくなり、アップグレードに手間がかかる可能性があります。 一方、8を選択して最新バージョンに適宜アップグレードしていけば、頻度は増えますが、都度の手間は小さくなります。ご自身やチームの開発状況や方針などを鑑みて、どちらを選ぶか検討してください。 なお、Laravelは6以降、セマンティ
3月24日、サイバーエージェントのエンジニア・クリエイターによる技術カンファレンス「CyberAgent Developer Conference2022」を開催しました。本記事では、「スマホゲーム業界におけるPHPの歴史とLaravel Octaneで広がるこれからのPHP」の様子をお届けします。 目次 ■サイバーエージェントグループのゲーム事業の歴史とPHP ■PHPで培ったもの ■多様化するゲームの要件とサイバーエージェントグループでの事例 ■PHPの変革「Swoole」「Laravel Octane」の登場 ■Laravel Octane Deep Dive ■まとめ ■サイバーエージェントグループのゲーム事業の歴史とPHP まずはサイバーエージェントグループのゲーム事業の歴史とPHPについて振り返ります。サイバーエージェントグループでは2009年からゲーム事業に参入しており、20
ストーリー PHPをインストールしたら必ず行う php.ini の設定ですが、 ネット上ではPHP5系の情報がたくさん出回っており、非推奨または削除された設定例が数多く困り果てていました。 良い感じにまとめてくれてるサイトが見つからなかったので、最強でベストプラクティスな php.ini 推奨設定を考えました。 異論は受け付けますので、ぜひコメントください。 参考設定 PHPでは、開発用と本番用の設定例を用意してくれています。 なんと素晴らしいことなんでしょうか。これをベースに設定します。 https://github.com/php/php-src/blob/master/php.ini-development https://github.com/php/php-src/blob/master/php.ini-production 予め以前の記事で設定の差分を調べておきましたので、よか
OpenTelemetry を利用して PHP アプリケーションのテレメトリデータを計装する方法をまとめました。 本エントリのコードは下記で公開しています。 github.com OpenTelemetry とは 用語 PHP アプリケーションのマニュアル計装(手動計装) 構成 OTel Collector Jaeger 動作環境 必要なパッケージ PHP コード 設定 実行 PHP アプリケーションのゼロコード計装(自動計装) 必要な拡張とパッケージ 設定 PHP コード 実行 さいごに 参照 OpenTelemetry とは opentelemetry.io OpenTelemetry は、サービスやアプリケーションのテレメトリーデータ(トレース、メトリクス、ログなど)を計装、生成、収集、送信するためのオブザーバビリティフレームワークです。ベンダーニュートラルな OSS であり、CNC
こんにちは。ニコニコ動画開発の多胡です。 今回は PHPerKaigi2023 向けの記事として、2021年に実施したニコニコ動画のコメントサーバーをお引越しした時のことを書いてみたいと思います。 文中の 5 つのフレーズをチャレンジトークンとしてみました。ぜひ探してみてください! (※ 記事の見出しにの横についている「#」はチャレンジトークンではありません。チャレンジトークンは文中に配置されています。紛らわしくてすみません!) 背景 実はニコニコ動画の #コメントサーバーを引っ越した のはこの時が二度目でした。 一度目は2014年から2016年にかけてのプロジェクトでファイルベースのシステムからの引っ越しでした。このファイルベースのシステムは、ニコニコ動画生誕当時から利用されており、当時のコメント参照や投稿にはすでに耐えられない状態になっていました。 そこで、このファイルベースのシステム
「TechFeed Conference 2022後夜祭」第5弾!今回からはプログラミング言語のLTが中心!Rust、Go言語、コンテナ技術、PHPに関するLT動画を8本公開です! こんにちは、TechFeed CEOの白石です。 2022年5月14日に開催された「エンジニアの祭典」TechFeed Conference 2022は、「日本を代表するテックエキスパート50名による大LT大会」という前代未聞の取り組みとして、大盛況のうちに幕を閉じました。 ですが、TechFeed Conferenceはまだまだ終わりません! 本イベントは、エキスパートの貴重な知見を一人でも多くの方々に届けるべく、企画当初から 「全セッション、永久保存版」 を掲げて、アーカイブ化にも全力を尽くすと誓っておりました。 本日より6/10までの間、「TechFeed Conference 2022後夜祭」を開催しま
名前、つけてますか? PHPにはnamespace(名前空間)という言語機能があります。 原初のPHPにはなかったのですが、PHP 5.3くらいからあるので、まあ平安時代には成立していたということです。それ以前の時代は App_Http_Controllers_User のような _ 区切りの擬似名前空間が用いられていたことがありました。現在では App\Http\Controllers\User のような \ 区切りの名前空間が利用できます。 名前空間付きのコード 名前空間が見慣れないという方のためにnamespaceのあるコードとしてLaravelで自動生成したControllerファイルの例を先に出しておきます。 <?php namespace App\Http\Controllers; use App\Models\Book; use App\Http\Requests\Store
FrankenPHP 1.0には、Symphony、Laravel、WordPressなどのネイティブサポートが含まれるほか、Caddyを搭載したプロダクショングレードのPHPサーバであり、PHPアプリのスタンドアロンで実行可能なバイナリとしてのパッケージ化が可能となっている。 さらに、PHP-FPMとNgnixを個別に実行する必要がなく、1つのサービスのみでPHPサーバを提供できるようになるとともに、PHP 8.2以降のほとんどのPHP機能拡張、およびすべてのCaddyモジュールと互換性がある。 ほかにも、アプリケーション起動してメモリに保持するワーカーモード、JavaScriptイベントとしてWebブラウザへ送信されるリアルタイムイベント、ZstandardおよびGzip圧縮、構造化されたログ、Prometheusメトリクスを使用したCaddyの監視、HTTPS・HTTP/2・HTTP
攻撃者は、はじめに標的のECサイトの注文フォームに対し、不正なスクリプトを含んだ文字列を入力し、購入処理を行います(図1の①)。その結果、ECサイトの購入処理の部分にXSSの脆弱性が存在する場合、ECサイトの管理画面を閲覧した管理者は不正なスクリプトが実行され、クレデンシャル情報の窃取や、ECサイトへの簡素WebShellの設置などが行われます(図1の②~④)。その後、攻撃者によってECサイトにWebShellやユーザーの情報窃取を行うJavaScriptなどが設置されます。設置された“情報窃取JavaScript”によってECサイトを利用するユーザーのクレジットカード情報等を窃取され、“情報保存ファイル”としてECサイト内に保存されます(図1の⑤)。攻撃者は定期的なWebShellへのアクセスを行うことでこれらの情報を窃取していたと推測されます(図1の⑥)。 なお、攻撃者は、一連の攻撃の
まず、PHPerKaigiがチケット発売中です!! phperkaigi.jp そして、このエントリ最後になんと割引コードを置きました!!今すぐゲット!! さて phperkaigi.connpass.com 先日上記のイベントを開催しました。 当日の動画はこちらです www.youtube.com ここでまあ色々話そうとおもって色々書いていたのですが、イベントの質問が盛り上がりまして、私が言いたい所がバラバラになったので、ここにエントリとして供養…したためたいと思います。 本件、テックの話は一切ないので、PHPの技術的な話を聞きたい人は「PHPerKaigiのチケットを買ったか?」を確認していただければそれでOKです!ありがとうございました! 「プログラマになる」、あるいは「IT系になる」について さて、結論から書きますが、世間でいわれている「プログラマになる(なった)」という時点では、
Tech Dept. 基盤グループエンジニアの @tenkoma です。 BASEには50以上のPHPプロジェクトのプライベートリポジトリがあります。 (アプリケーションは十数個で、残りの多くが、アプリケーションが依存するライブラリです) 過去4年ほどの間に新規に作られたリポジトリにはほぼ最初からPHPStanが導入されていますが、それ以前から開発していたリポジトリには導入されていないものが多数ありました。 それらのリポジトリにPHPStanを導入していったので、なぜ導入したか、導入方法、得られた効果について紹介します。 PHPStanとは PHPコードを実行せずに、実行時にエラーになりうる箇所を検出するツールです。PHPStanを利用しCIに組み込むと、テスト実行せずに検出できるバグの一部は、PHPStan解析で指摘してくれるので、コードレビューの負担が減ることが期待できます。 なぜPH
安倍総理が病気を理由に突然辞任を表明した。政治家なら病院に通う姿を取材させることなど絶対にないが、事前にメディアに情報を流し、堂々と取材させていたことから、辞任しなければならなくなった時、病気を理由にするためだろうとは思っていた。しかしこれほど早く辞任するとは思わなかった。 なぜなら安倍総理はコロナ禍で東京五輪の開催が危ぶまれた今年3月、東京五輪組織委会長の森喜朗氏が「2年延期」を提案したのを断り、自分の任期中の「1年延期」で小池百合子東京都知事と手を組み、IOC(国際五輪委員会)のバッハ会長と合意した。 その時に安倍総理は「人類が新型コロナウイルス感染症に打ち勝った証として完全な形で東京大会を開催するためにバッハ会長と緊密に連携していくことで一致した。日本は開催国の責任をしっかりと果たしていきたい」と述べた。 安倍総理が「1年延期」を主導したのだから、まずは「コロナに打ち勝つ」ことに全力
MicrosoftはPHPの次期バージョン「PHP 8.0」をサポートしないそうだ。MicrosoftでPHP関連のプロジェクトマネージャを担当するDale Hirt氏は、公式サイト上でPHP 8.0以降では、PHP for Windowsをサポートする予定はないと明言した。 Microsoftが公式にサポートするPHPは現行でサポートしているPHP 7.2、PHP 7.3。PHP 7.4のみとなる。この中で最も新しいPHP 7.4のMicrosoftサポート期限は2022年11月28日までとなっている(Microsoft Support of PHP on Windows - Externals、窓の杜)。 なおKOYAMA Tetsujiさんのツイートによれば 、 これってバイナリ提供の話ではなくて、Windows版PHPは実はMSの公式サポートによって開発が支えられていたってことだよ
著者は現在、建設会社の総務経理、大学の非常勤講師、セミナー講師、時間管理コンサルタント、税理士と、5つの仕事をしているスーパーサラリーマンです。どうやればこんな人になれるのでしょうか? 【1.本書の紹介】 【2.本書のポイント】 【3.本書の感想】 【4.関連書籍の紹介】 【1.本書の紹介】 著者は元々、定時が23時になってしまうほど、そんなに出来の良い会社員ではありませんでした。(笑) しかし、このままではいけないと思い、時間管理や仕事の効率化の本を年100冊のペースで読み漁り、ビジネスセミナーにも月1回をノルマに参加しました。 そして、良いと思ったコンテンツやノウハウを書き留めて、実践し、習慣化していきました。 その習慣化した内容が、ここに書かれている方法です。 他の本でも言われていることも含まれています。 ただし、著者自身が生み出した方法もあり、時短の為にとにかく一生懸命やってきた事
https://fortee.jp/phperkaigi-2021/proposal/42ce8b07-6972-42bb-a2ac-96af7249cfa4 あるシステムを理解して開発を開始するとき、必要なのはInfrastructure as Codeを含むソースコードだけでは大抵の場合は不十分です。では挙動がわかるようなテストコードがあれば十分かというとそうでもありません。 いわゆる「オンボーディングの効果的な運用」「開発開始までのオーバヘッドの削減(PHPerKaigi2020で発表)」は継続的な生産性向上のためには考えなければならない要素です。 そして、上記を補完するためにしばしばドキュメントが書かれます。 私はドキュメント運用のアプローチとして「コードによる生成を含んだドキュメント運用」に興味を持っています。 私はこれを「Documentation as Code」と呼んでいま
最近自宅引きこもりで時間ができたので、YouTube動画を投稿するようになりました。みんな見てねー。 徳丸浩のウェブセキュリティ講座 そんなことで、次の動画は、お気に入りのPHPの脆弱性 CVE-2018-17082 を取り上げようと思ったんですよ。表向きXSSで出ているけど、金床さんのツッコミにもあるように、実はHTTP Request Smuggling(HRS)だというやつです。でね、下準備であらためて調べていると、なんかよく分からない挙動がワラワラと出てくる。なんじゃ、こりゃ。CVE-2018-17082 全然分からない。僕は気分で CVE-2018-17082 を扱っている… で、雑に整理すると、以下のような感じなんです。 古い環境だとCVE-2018-17082は発現しない(2015年以前) 少し古い環境だとCVE-2018-17082は発現する 新しい環境だとCVE-2018
意外なところに手を出してきたと思われるかもしれませんが、きっかけは WordPress & Gutenberg なんです。 2015年の Automattic社 Matt Mullenweg 氏の "Learn JavaScript, Deeply" という言葉。そして、バージョン5.4までたどり着いた現在の WordPress と、見え始めた Block Based Theme。 世間では WordPress=PHP という認識がまだまだ強いわけですが、とっくに、Gutenberg=JavaScript(React)なわけです。 すでに見えている未来を考えれば、WordPress=JavaScript と言われる時代もそう遠くはないのではとさえ思います。 なので、自分たちも JavaScript(React)をもっと身近なものにしておかなければと動き始めました。 入門者の通常ルート通り、
去年末(2019/12)にオススメ書籍をまとめてみたことがあったので、それを少し更新して公開します。 上にある書籍がよりオススメというわけではないです。 対象者は「PHP中級者」です。中級者が何かは難しいですが、初心者、初級者では決してないとは言えます。 改めて一覧にしてみると、かなり偏っているかも知れません(笑 こういうのはコンテキストというのがあるため、それが合わないと「お前は何を薦めているのだ?」となるでしょうね。 キーワードは、「モデリング」「オブジェクト指向プログラミング」「TDD」「デザインパターン」「DDD」「チーム開発」「アジャイルソフトウェア開発」「スクラム」でしょうか。 PHP中級者のイメージ たぶん、PHP中級者であれば、PHPに関することはPHPマニュアルなどを調べて解決できるでしょう。PHPのオープンソースプロジェクトに貢献しており、自分でプロジェクトを持っている
プロダクト本部で副本部長をしています、田中(@tan_yuki)です。最近はたべっ子水族館をずっと食べています。 私の主な仕事はプロダクト開発組織に関する採用・ピープルマネジメントに関するところがメインなのですが、最近、中途採用の方針を少し変更しました。その変更内容について、社外にも発信していこうと思い、ブログを書きました。 以下の文章は社内で共有した文章に少し加筆修正を加えたものになります。 ~ * ~ * ~ * ~ * ~ * ~ * ~ Chatworkで使われているプログラミング言語といえば、どういったものを想像するでしょうか? 私達はいままで、Scalaという言語を強くアピールしてきました。その功績もあり、多くのScalaエンジニアの方々を採用することに成功しています。もちろん、今後もScalaとは長く付き合っていくつもりです。 しかし、最近エンジニア採用の優先度の調整をし、P
アプリケーションが想定しない文字列を実行することにより、データベースを不正に操作する攻撃はSQLインジェクションと呼ばれ、攻撃によってクレジットカード情報や住所などの重要な個人情報が流出した事例も存在します。「Lord of SQLInjection」は、そんなSQLインジェクションを駆使してダンジョンを攻略していくウェブサイトです。 Lord of SQLInjection https://los.rubiya.kr/ まずはLord of SQLInjectionにアクセスして「[enter to the dungeon]」をクリック。 Lord of SQLInjectionを利用するのは初めてなので「Join」をクリック。 Lord of SQLInjectionで使用するID、メールアドレス、パスワードを入力して「Join」をクリックします。 先ほど登録したIDとパスワードを入力
複雑なプログラムを書いてしまうのを避けるために、if 文の else を避ける制約を設けてプログラミングしてみましょう、というアプローチがあります。これはあくまで、ThoughtWorks アンソロジーに書かれていた、ある種のプログラミング思考のトレーニング方法のひとつにすぎないものです。 しかし、権威だからか、あるいは、あまりコードを書かない人がわかりやすいと感じるからか、プロダクションコードの規約に使おうとする誤った考えがあります。そんなことをすると、コード品質は下がります。 else 禁止制約というのは、「これまで if-else で記述していた多くのコードは、実は、生成するオブジェクトの多態性によって、分岐の前倒しが可能になるものだったのか」という認識を得られれば、すぐに忘れるべきルールです。 ある実在の OSS コードを例に説明します。 https://github.com/xr
はじめにTIG DXユニット真野です。 CNCF連載の2本目はクラウドネイティブなフィーチャーフラグの標準とAPI、SDKを提供するOpenFeatureについてです。 フィーチャーフラグとはフィーチャーフラグとはコードを変更せずに、フラグを使って機能を有効/無効化する開発/デプロイ手法のことです。一般的なユースケースとしては、特定のユーザーに対して再起動とか再デプロイをせずに、新機能を有効化したいといった場合に役立ちます。信頼度が高くなったらより段階的に広範囲に対象を広げていくと安心ですね。この使い方だけであれば、カナリアリリースを想像しますが、他にも次のようなユースケースが考えられます。 初期から契約している特別な顧客(あるいはプレミアムプランに契約している顧客)に向けて開発した機能を提供する バグが見つかったので、該当機能を無効化してアプリの振る舞いをロールバックする 繁忙期にシステ
PHPのバージョン 主なコンテンツ(脆弱なスクリプト)はPHP 5.3.3(CGIモード)で動いています。これは、古いPHPでないと発現しない脆弱性に対応するためで、代表的なものとしてNULLバイト攻撃があります。PHPは5.3.4以降でNULLバイト攻撃に対応したため、NULLバイト攻撃を体験するにはPHP 5.3.3以前のものを使う必要があります。一方、新しいバージョンのPHPが必要な箇所もあり、その場合はPHP7.0.27(Debian9標準パッケージのもの)を使い分けています。 メール関連の脆弱性対応 メールヘッダ・インジェクションを体験するにはメールの送受信の仕組みが必要なため、Postfix、Dovecot、RoundCubeがインストールされています。徳丸本初版は「お手元のメールクライアントソフトをお使いください」という体でしたが、今どきメールクライアントを使っている人も少な
開発部のにゃんです。主にバックエンドを弄っております。 Webアプリケーションではセキュリティ対策のためにランダムな文字列を使用する場面が多々あります。例えば CSRF対策のトークン OAuthやOpenID Connectで使用するnonce, state, code_verifier メールの到達確認用URLのトークン パスワードをhashする際に使用するsalt セッションID これらの値は単に衝突しなければOKというものではありません。十分なセキュリティ強度を確保するためには推測不可能なランダム値を使う必要があります。 以下は推測不可能なランダム値ではありません。セキュリティが求められる場面では使ってはいけません。 Math.randomなどの疑似乱数 日付やユーザ情報のハッシュ ではどのような値が適切なのでしょうか? /dev/randomと/dev/urandom Linuxに
TL;DR ADOP はヘキサゴナルアーキテクチャの実装パターンとして考えられます。 パターンという名前はそれに由来します。 あえて名付けた理由はこぼれ話をご確認いただけると幸いです。 ADOP の概要 ADOP (Application Domain Others Pattern) は中長期的に運用可能なコードへ誘導するアプリケーションアーキテクチャパターンです。 ADOP は次の特徴があります。 最小限のルールである 指針が明確である 特定の技術スタックに縛られない テスタビリティが確保される これらの特徴は、コードを自然と中長期的に運用可能なコードへ導きます。 まず、簡単にそれぞれがどういった意味を成すのかを確認してきましょう。 最小限のルールである どれほど完璧な作戦であっても、その実行が不可能であれば何の意味もありません。 プログラミングにおいてもそれは同じことで、制約を守るため
Laravel のログイン認証周りのカスタマイズをする度、 「この場合どこをいじればいいんだっけ・・・」と混乱するので、 図にまとめてみました。 全体感を掴んでいただくことが目的ですので、 この記事では、具体的なカスタマイズのコードは紹介しません。 ご了承ください。 まずは登場人物一覧 ガード (guard) Laravel では「認証」と呼ぶことが多いです。 ログイン機構の種類を表します。 たとえば、ECサイトの「管理者」と「会員」など。 ログイン画面の数だけガードがある、というイメージです。 provider (認証方法) と driver (認証状態の管理方法) で構成されています。 config/auth.php に定義されており、追加・変更ができます。 ガードドライバ (driver) ログインの認証状態をどうやって管理するか。 多くの場合はセッション認証 (session) で
SPA(Single Page Application)の普及が一層進んでおり、従来型のMPAを知らないウェブ開発者も生まれつつあるようです。SPA対応のフレームワークでは基本的な脆弱性については対策機能が用意されていますが、それにも関わらず、脆弱性診断等で基本的な脆弱性が指摘されるケースはむしろ増えつつあります。 本セッションでは、LaravelとReactで開発したアプリケーションをモデルとして、SQLインジェクション、クロスサイトスクリプティング、認可制御不備等の脆弱性の実例を紹介しながら、現実的な対策について紹介します。LaravelやReact以外のフレームワーク利用者にも役立つ説明を心がけます。
「静的解析ツールで生まれたSQLインジェクション」というタイトルで登壇したのは、小川 氏。「面白かった脆弱性」について解説し合い、脆弱性に関する知識を深めるためのイベント「Security․Tokyo #2」で、静的解析ツールによって生まれたSQLインジェクションの事例について発表しました。 登壇者の自己紹介 小川氏:小川と申します。「静的解析ツールで生まれたSQLインジェクション」というタイトルで発表いたします。よろしくお願いします。 自己紹介を簡単に。経歴ですが、昔学生の時にWebアプリ開発のバイトをしていて、就職後は10年ぐらいぜんぜん違う、製造業で働いていました。ずっとパソコンを見ていたら目が悪くなるかなと思ってほかの業界に行ったのですが、結局ずっとExcelやWordを見ていて、あまり変わりませんでした。 結局やはりITだなと思って、最近root ipという会社に転職して、Bto
MySQL のインデックスと EXPLAIN の社内講習会しました! みなさんMySQL使っていますか? インフラエンジニアの nobuh こと波多野です。 弊社はサーバー開発に携わることが多く、サーバー開発の言語としては PHP をはじめ C# などいろいろな言語を使っています。そのサーバーと合わせて必須となるデータベースについては MySQL ないし AWS RDS Aurora など MySQL 互換データベースを含め、ほぼ 100% MySQL を使っています。 そして、どんなサービスやプロダクトでもデータを管理し提供するデータベースは、性能でも重要な部分になります。 今回そんな MySQL の性能で重要となるインデックスについて、またクエリをチューニングする場合に必要となる EXPLAIN についての社内講習会を「新卒講義」の場を借りて実施いたしました。その内容について紹介したい
この記事について 自分の所属するチームに、自動テストを書いたことがないメンバーが加わったとき、ガイドラインとなるようなドキュメントがほしいなと思っていたので、書きました。どうせなら他のチームでも使いたいので、ドメインはぼかして汎用的になるようにして公開します。独自のベストプラクティス的なものですが、これまでのチームではわりとどこもこれに近くうまくいっていたので、汎用的に使えるんじゃないかと想像します。 はじめに 環境 Laravel: 5.8 以上 PHP: 7.0 以上 PHPUnit: 7.0 以上 いちおうバージョンは書きましたが、あまり関係はないです。 基本方針 基本方針は、自分の経験上これがいちばんコストパフォーマンスがいいと思っているガイドラインですが、自分はベンチャーやスタートアップ企業で、スピード重視の文化に身を置くことが多いため、テストは最低限にして、素早くリリースするの
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く