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を使ったコンポーネントをライブラリ化してますが、設定周りが結構大変だったのでメモ

続きを読む

【辛み】Chromeの等幅が揃わない

ちゃんとフォントで等幅のRictyを指定して、そのフォントを指定してるのにChromeだけ幅が揃わない
atomsublimeは揃うのに...

chrome
f:id:naosim:20180616064343p:plain
↑全角4文字と半角8文字が揃わない

atom
f:id:naosim:20180616064403p:plain

sublime text
f:id:naosim:20180616064416p:plain

なんでや。


追記
firefoxでも揃わなかった
なのでhtml的な何かが原因かな

htmlのテーブルからmarkdownを作る

以前の記事でmarkdownからSQLのcreate table文を作る方法を載せました

naosim.hatenablog.jp

これを真面目に作ってチームで使おうと思ったら
メンバーがDB仕様書をコンフル上で作っちゃったので
そこからmarkdownに変換する必要が出てきましたw

てことでやってみたのでメモ

続きを読む

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ボタンを押してね

See the Pen WyNgdx by なおしむ (@naosim) on CodePen.