wordpressにバージョン番号を入れたら開発が楽になった
wordpressに機能追加するのは正直つらい...
本番環境で開発できないし、ローカルだと本番DBとの差異がでちゃってデプロイしにくいし...
何故1つのDBにコンテンツとデザインとアカウント情報を共存させてるんだよ...
バージョン番号をつけて本番環境で直接開発する
とにかくwordpressの開発がしにくいので、もう本番環境で直接開発しちゃいますw
まず適当な場所にバージョンを取得できるコードを書く
<?php global $version; $version = 201601; // 現行バージョン if($_GET['version'] == '201801') { $version = 201801; }
これで通常は$versionに201601が入ってますが
/path/to/contents/?version=201801
こんな感じに書くと201801が入ります
このバージョン番号を使って開発をします
たとえば機能追加ならこんな感じ
<?php if($GLOBALS['version'] >= 201801) { //version201801 ?> <div>追加機能だよーーー</div> <?php } //version201801 ?>
これで通常は追加機能は表示されないけどURLでversionを指定した場合のみ表示さるようにできました
バージョンを上げて公開完了
先程のversion分岐を駆使して開発を進めたら、最後にバージョンを上げます
global $version; $version = 201801; // 現行バージョンを上げる
これで公開完了
もちろん各コードに散らばったらif文も消しましょう
コーディング時にバージョン用if文に//version201801
みたいなコメントを入れておくとgrepしやすいです
とはいえ本番環境での開発は怖い
本番環境で直接コーディングしてるとシンタックスエラーになっただけでサービスが止まって怖い...
なので実際はローカルで作ってgitで管理しつつこまめに本番に上げて作ってます
ちょっと面倒だけど常に本番で動作確認でるから安心です
まとめ
wordpressにバージョン番号を入れて出し分けできるようにしておくと開発が楽になるよ
Spring + mybatisなコンポーネントライブラリを作成する方法
Spring + mybatisを使った開発用に、DBの自動テスト用ユーティリティを作成しました
DbTestUtil https://github.com/naosim/DbTestUtil
SQL文をサクッと実行したりできます
このユーティリティでは
Spring(DI)とmybatisを使ったコンポーネントをライブラリ化してますが、設定周りが結構大変だったのでメモ
htmlのテーブルからmarkdownを作る
php+sqliteをdockerで動かすメモ
dockerの練習用にphp+sqliteなサーバを作ってみたのでメモ
Dockerfile
FROM php:5.6-apache RUN apt-get update && apt-get install sqlite3 libsqlite3-dev -y
build
docker build ./ -t php5_sqlite
run
docker run -d -p 80:80 -v /Users/fujitanao/git/htmlonly/html:/var/www/html --name php5_sqlite_container php5_sqlite
stop
docker stop php5_sqlite_container
start
docker start
container remove
docker rm php5_sqlite_container
markdownで書いたテーブル仕様書からsql文を生成する
テーブル仕様書をmarkdownで管理したいって要望があったので作ってみた
まだ開発中。markdownから階層構造作るところで多分バグがある
サンプルのテーブル仕様書はこんな感じ
contract: 契約
contract_state: 契約状態テーブル
カラム名 | 型 | NOT NULL | 補足 | index | 説明 |
---|---|---|---|---|---|
contract_id | VARCHAR(13) | o | AUTO_INCREMENT PRIMARY KEY | 契約ID | |
state | VARCHAR(10) | o | contract_state | 契約状態 |
extra: その他
term
extra_start_e: その他開始イベント
カラム名 | 型 | NOT NULL | 補足 | index | 説明 |
---|---|---|---|---|---|
contract_id | VARCHAR(13) | o | PRIMARY KEY | 契約ID | |
start | date | o | extra_start | 開始日 |
extra_end_e: その他終了イベント
カラム名 | 型 | NOT NULL | 補足 | index | 説明 |
---|---|---|---|---|---|
contract_id | VARCHAR(13) | o | PRIMARY KEY | 契約ID | |
end | date | o | extra_end | 終了日 |
extra_state: その他状態テーブル
カラム名 | 型 | NOT NULL | 補足 | index | 説明 |
---|---|---|---|---|---|
contract_id | VARCHAR(13) | o | AUTO_INCREMENT PRIMARY KEY | 契約ID | |
state | VARCHAR(10) | o | extra_state | 契約状態 |
ここからCreateTable文を生成する
以下、動作確認
RUNボタンを押してね