バーコードについてJANの基本とPHPのライブラリを調べてみたのでメモ。

バーコードには1次元バーコード(お菓子とかパン缶詰とかについている俗に言うバーコードハゲ的な者)
2次元バーコードとは、QRコード等、横方向だけでなく縦にも情報を持つもの総称

今回は、業務上1次元バーコードについて調べた。

代表的な種類

JAN(EAN、UPC) CODE39 CODE128 NW–7 ITF   
文字 数字0–9 数字と、アルファベット/記号は一部 数字/アルファベット/記号(フルASC) 数字と、アルファベット/記号は一部 数字0–9
桁数 13 or 8 可変 可変 可変 14 or 16

今回使うJANの種類3種類

標準タイプ13桁 標準タイプ13桁 短縮タイプ8桁
詳細 2001年1月以後の登録 2000年12月以前の登録 小さい物用

今後使う2001年1月以降のタイプついてのみ詳細

説明 GS1事業者コード(9桁) 商品アイテムコード(3桁) チェックデジット(1桁)
コード例 458240192 927 3
設定者 流通システム開発センターが付与 事業者にて設定 計算式で算出

PHPにて画像生成するのでライブラリなど調査

githubでスターの一番多かった上のもので大丈夫かな。ライセンスあGNU

名称 url ライセンス、料金など
PHP Barcode Generator https://github.com/picqer/php-barcode-generator GNU Lesser General Public License v3.0
php-barcode https://github.com/rlt3/php-barcode/ MIT License
Barcode.php http://www.pao.ac/barcode.php/ 21,600
Image_Barcode2 https://pear.php.net/package/Image_Barcode2/download PHP License
PHP-Barcode https://ashberg.de/php-barcode/download/ GNU General Public License

Gitコマンド打ち込むのが苦痛でDashに登録してタイプ数をへらす。

git ほげほげ、gitほげほげ、何度も打ち込んで大変なのでDashにスニペットとして登録してタイプ数をへらしてみました。

楽。

楽。

よく使うものを登録しておけばタイプ数が約半分くらいになります。
git status の10文字が、 gits; 5文字。
git commit -m ‘’ の16文字が、gitc; の5文字。
git commit -am ‘’ の17文字が、 gitam; の6文字。
git commit –amendとかも。18文字タイプが、 ‘gitamd;’ 7文字。

とかなり楽になり、細かいコミットが面倒でなく1つの事 = 1コミットでも面倒でなくなりそうです。

登録したスニペットたち

登録したスニペットたち

cakephp3で基本のorderを指定する場合はbeforeFind()メソッドをTableクラスに追加する。

以前のCakePHP2では、Modelのクラスのプロパティー $orderに指定すればよかったですが、なくなっているので以下のようにbeforeFindメソッドをTableクラスに追加で可能。

class StatusesTable extends Table
{
     *
     *
     *
    public function beforeFind(Event $event ,Query $query, $options, $primary) {
        if(!isset($query->order)){
            $query->order(['Statuses.type'=>'ASC']);
        }
        return $query;
    }

     *
     *
     *

すこしはまったのが、以前までの感覚で ‘Status.type’ ってやると、エラーとなった。
Table = 複数系との思考に切り替えないとだ。(Statuses.typeでOK)

cakephpで複数単語名のコントローラーのルーティングでエラー

コントローラー名を OrderDetailsConttollerという風に
Order , Details からなる場合のルーティングがかわっていた。

CakePHP2までは、
http://example.com/order_details/
で良かったけど。CakePHP3では。

http://example.com/order-details/

となっているみたい。

/src/config/route.php を覗いてみると。  

Router::defaultRouteClass(DashedRoute::class);

という設定があり、デフォルトルートはDashed ルートClassだよと、なっている。
Router::defaultRouteClassの設定でいろいろルーティングを設定できるみたい。
(ルートをモジュールチックにしていろんなURLに対応できるようにしたんだなぁ。たしかにメディアのリニューアルとかだと、URL変えたくないし独自ルールをくつけるならココでオリジナルのクラスにかえちゃうと楽そう。)

参考 :
https://book.cakephp.org/3.0/ja/development/routing.html

cakephp3で自動でフィールドのタイプを認識できなかった。(due_dateという名称がわるいの??)

cakephp3で自動でフィールドのタイプを認識できなかった。(due_dateという名称がわるいの??)

cakephp3で自動でフィールドのタイプを認識できませんでした。あるテーブルで。
due_date という名前のフィールド(カラム)をか使っていたのですが、どうしてもうまく行かず。
dueという名称にしたらうまく判定できました。

FormHelper > モデルのschemaとかまでは正しく’date’と認識されているのだけど、その先の何処かで’text’と判定されてしまっていたみたい。掘り下げたいけどタイムアップでとりあえず対策のみメモ。

Cakephp3で、入力する日付フォーマットを日本語にする方法

Cakephp3で、入力する日付フォーマットを日本語にする方法

src/View/AppView.phpで定義すると楽に実装できました。
– 基本形成はdateWidgetで
– 細かいオプション変数としてテンプレートに渡して +=で必要分はテンプレートで追加

//src/View/AppView.php
class AppView extends View
{
     *
     *
     *
     
    public function initialize()
    {
        $this->Form->templates([
            'dateWidget' => '{{year}}年{{month}}月{{day}}日{{hour}}:{{minute}}',
        ]);
        $this->set('dateFormat',[
            'monthNames' => false,
            'minYear' => date('Y')-10,
            'maxYear' => date('Y')+10,
            'default' => date('Y-m-d H:i:s')
        ]);
    }
}
//your template 
echo $this->Form->control('due',$dateFormat+['label'=>'期限']);

PHPで連想配列をマージ(extend)するのは簡単だった。

PHPで連想配列をマージ(extend)するのは簡単だった。

今頃感ですが意外と使ったことがなかった。。orz..

$data = ['name'=>'yamaaaaa','job'=>'engineer'];
$data+= ['age'=>40];
print_r($data);//Array ( [name] => yamaaaaa [job] => engineer [age] => 40 )

php7にて確認。

Materialize.cssフレームワークでのメインのカラーの変更

Materialize.cssフレームワークでのメインのカラーの変更

流れは、ソースを持ってきて、変数の _variables.scssのカラー名を一箇所変更して再度コンパイルするだけ。

ソースは、materialize-css/sass以下を全部持ってくる。

tree

tree

/components/_variables.scssを開いて編集する、
38行目辺りの、$primary-colorを設定している箇所を ‘materialize-red’ から任意の色に変更。
以下は ’light-blue’の例。(色の種類は http://materializecss.com/color.html のColorPalette参照)

$primary-color: color("light-blue", "lighten-2") !default;

であとは、materiarize.scss をコンパイルする(components以下は@importしている)

参考ページ
http://materializecss.com/sass.html

MacでターミナルからSublimeTextを素早く開く方法。

MacでターミナルからSublimeTextを素早く開く方法。

openコマンドを使うと楽、-aでアプリを指定して、‘.(ドット)’ カレントディレクトリを指定してあげると、プロジェクトバー(サイドバー)に開いてくれる。

$ open -a /Applications/Sublime Text.app .

これをDashなどのスニペットアプリにトリガーを登録しておけば。‘open;’ とタイプするだけで一瞬で開けて便利。

WordPressの更新の場合のメンテナンス表示の時間について調べてみた。

WordPressの更新の場合のメンテナンス表示の時間について調べてみた。

WordPressの更新のときに基本自動アップデートにしたいんだけど、いろんな事情で手動で更新してて、それってサイト止まるの?って場合に出くわしまして。

掘り下げていくと、includes/update-core.phpのコメントにかかれていた。

  1. Test unzipped location for select files to ensure that unzipped worked.
  2. Create the .maintenance file in current WordPress base.
  3. Copy new WordPress directory over old WordPress files.
  4. Upgrade WordPress to new version.
    4.1. Copy all files/folders other than wp-content
    4.2. Copy any language files to WP_LANG_DIR (which may differ from WP_CONTENT_DIR
    4.3. Copy any new bundled themes/plugins to their respective locations
  5. Delete new WordPress directory path.
  6. Delete .maintenance file.

上記手順は、基本的には、Downloadされてものを準備された後の話。
2の手順でメンテ開始(.mainteannceファイルがあるとメンテになります。)
3,4でコピーなどが行われて5–6で更新ファイルを削除して完了。

気になるのは、4.3あたりで新しいテーマなどが入ってきたときは一瞬では終わらない可能性とかありそうです。

一瞬で切り替えたい場合は、並行してどこかで更新後の状態のファイル郡をつくって、どうさ確認などしてDodumentrootのリネームなどなのかなとか考え

Page 17 of 46

Powered by WordPress & Theme by Anders Norén