PHPackages                             boke0/boke0ick\_mecha - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. boke0/boke0ick\_mecha

ActiveProject[Framework](/categories/framework)

boke0/boke0ick\_mecha
=====================

マイクロフレームワークで、気持ちいいCMS作ってみました。

2.2.2(6y ago)271GPL-3.0-or-laterPHPCI failing

Since Jan 22Pushed 6y ago1 watchersCompare

[ Source](https://github.com/boke0/boke0ick_mecha)[ Packagist](https://packagist.org/packages/boke0/boke0ick_mecha)[ RSS](/packages/boke0-boke0ick-mecha/feed)WikiDiscussions master Synced 2d ago

READMEChangelogDependencies (10)Versions (20)Used By (0)

ボケマリック機構
========

[](#ボケマリック機構)

モダンなAPI実装を目指したPHP製CMSです。 Twig(PythonのJinjaと同じ文法のテンプレートエンジン)用のHTMLを用いてテーマを作成でき、 Markdownで記事を書くことができます。

設定ファイルを記述することでテーマやルーティングをページごとに細かく設定できる柔軟さが作者なりの売りです。

インストール方法
--------

[](#インストール方法)

### Composerを使う

[](#composerを使う)

```
# hogeディレクトリにプロジェクトを作成します
composer create-project boke0/boke0ick_mecha hoge
```

### GitとComposerを使う

[](#gitとcomposerを使う)

```
git clone https://github.com/boke0/boke0ick_mecha.git
cd boke0ick_mecha
composer install
```

ディレクトリ構造
--------

[](#ディレクトリ構造)

```
.
├── Dockerfile
├── README.md
├── composer.json
├── composer.lock
├── contents ...記事のMarkdownや設定ファイルを置く場所
├── default.conf
├── docker-compose.yml
├── plugins ...プラグインをインストールする場所
├── public ...公開ディレクトリ
├── src ...本体ソースコード
├── static ...テーマに依存しない素材などを置く場所
├── themes ...テーマをインストールする場所
└── vendor

```

サイトの構造の設定
---------

[](#サイトの構造の設定)

URL設計はcontents/struct.jsonに記述します。

```
[
    {
        "theme":"default",
        "routes":[
            {
                "path":"/",
                "type":"index"
            },
            {
                "path":"/about",
                "type":"about"
            }
        ]
    },
    {
        "theme":"hoge",
        "routes":[
            {
                "path":"/article/:id",
                "type":"article"
            },
            {
                "path":"/news/:id",
                "rule":"/n/files/:id"
                "type":"article"
            }
        ]
    }

]
```

上記の設定では、以下のようにルーティングされます

URLの例テーマ適用されるテンプレート記事のパス/defaultindex.tpl.htmlcontents/\_\_index.md/aboutdefaultabout.tpl.htmlcontents/about.md/article/0001hogearticle.tpl.htmlcontents/article/0001.md/news/001hogearticle.tpl.htmlcontents/n/files/001.md例の用に、基本的にはURLと同じルールで記事ファイルを参照します。 例外的なルールを適用したい場合は、ruleディレクティブを指定してください。

contentsにおける参照先がディレクトリの場合は、そのディレクトリの\_\_index.mdをロードします。

記事の投稿
-----

[](#記事の投稿)

記事はMarkdownを用いて記述してください。

このとき、HugoなどでもサポートされているYAML形式のFrontMatterを記述し、メタ情報を設定することができます。

```
---
title: タイトルhogehoge
date: 2020/1/24
---
こんちは
```

テーマのインストール
----------

[](#テーマのインストール)

themes/ディレクトリにディレクトリごとコピーしてください。

プラグインのインストール
------------

[](#プラグインのインストール)

plugins/ ディレクトリにプラグインのディレクトリごとコピーしてください。 このとき、 plugins/&lt;プラグイン名&gt;/\_\_construct.php というパスに \_\_construct.php が設置されるようにしてください。

テーマ作成
-----

[](#テーマ作成)

テーマは themes/ ディレクトリ内にディレクトリを作成し、 その中にtwig用のHTMLテンプレートファイルを設置するだけで作成することができます。

### テーマの公開

[](#テーマの公開)

テーマのソースコードを公開したい場合は、 テーマのディレクトリごとGitで管理してしまうことをおすすめします。 そうすることで、利用者は themes/ ディレクトリ下でリポジトリをcloneするだけで利用を始めることができます。

テーマで独自の素材を利用したい場合は、テーマのディレクトリ内に素材を設置し、以下のURIを指定してください。

```
/asset?theme=&filename=

```

プラグイン開発
-------

[](#プラグイン開発)

プラグインは plugins/ ディレクトリ内にディレクトリを作成し、 その中にPHPファイルを設置することで作成できます。

プラグインのディレクトリ内には、最低限 \_\_construct.php を設置する必要があります。ボケマリック機構本体からはこのファイルが呼び出され、 このファイルに記述されている通りにプラグインの挙動を設定します。

デフォルトで設置されているSamplePluginを例に解説します。

```
