Sculpin でブログアーカイブの日付ごとにポストをまとめたページを作るバンドルを作ってみました。
とりあえずは、 generator として指定されたディレクトリ以下にインデックスページをどかどかっと作成します。
ようするに、 https://www.sharkpp.net/blog/2015/ とかで、この例だと 2015 年に投稿された記事の一覧が列挙されるページを作ることが出来ます。
まず始めに
Sculpin でブログとかを作ると、記事の日付で URL を掘り下げて作ってくれたりするのですが、残念なことに、 Wordpress などでもよくあるような、年月日ごとに記事を列挙したページを作る機能がありませんでした。
で、無ければ作ろう!と思い立ったはいいけど、進捗は思わしくなく、、、ってところで最終的に3時間程度で動く物が出来たのでもにょる所。
それはともかく、公式のドキュメントを見たり、Symfony のドキュメントを見たり、 Sculpin のソースを見たりと、なんとか形に出来ました。
Sculpin を拡張するための心得
- 公式ドキュメントの "Extending Sculpin" を熟読しよう!
- Symfony2 のドキュメント "バンドルの構造とベストプラクティス"、"セマンティックコンフィギュレーションを通してバンドルを設定する方法" を熟読しよう!
- mavimo/sculpin-redirect-bundle を熟読しよう!
- Sculpin の ソース を熟読しよう!
で、なんとなくは作れる気がします。
Packagist に公開しよう!
Composer で簡単に使えるようにするに、 Packagist に登録してみます。
というか、登録せずに composer.json
書いて php composer.phar install
したら
$ php sculpin.phar update
Loading composer repositories with package information
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- The requested package sharkpp/sculpin-calendarian-bundle could not be found in any version, there may be a typo in the package name.
Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.
Read <http://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.
って言われてもにょる。
ってことで、
- パッケージ用の composer.json を書きましょう!
- Packagist への登録時に怒られるので、レポジトリ名は小文字で!
- Packagist 登録時には Git or Svn or Hg の公開レポジトリ URL が必要になるので、今回は GitHub に登録!
- Packagist に登録です!
ってことで、GitHub の sharkpp/sculpin-calendarian-bundle で公開し、 Packagist の sharkpp/sculpin-calendarian-bundle でパッケージを登録しました。