[Laravel] 日付入力にjQuery UIのDatepickerを使う

よく使いそうなので覚え書き。

参考サイト

A Date picker
https://laracasts.com/discuss/channels/general-discussion/a-date-picker

[Laravel] PHP7ベースのHomesteadにphpMyAdminをインストールする

まずはapt-getでインストールを試みたけど失敗。

理由は明確。最新のHomesteadはPHP7ベースだけど、UbuntuのデフォルトリポジトリにあるphpMyAdminはPHP5ベースなので、PHPのバージョンが違うというわけ。

仕方ないので、phpMyAdminをGitHubからクローニングする。

http://phpmyadmin.app/

参考サイト

phpmyadmin with PHP7
https://laracasts.com/discuss/channels/general-discussion/phpmyadmin-with-php7

[Laravel] 5.2でIlluminate/HtmlServiceProviderはサポート外

Laravel 5.2にIlluminate/HtmlServiceProviderをインストールして使おうとするとエラーが出る。

原因はApplicationクラスのメソッド名変更。bindShare()が5.2ではsingleton()に変わっているらしい。故に、以下のページで言及されているけど、$app->bindShare()の呼び出しを$app->singleton()に変更すれば動くみたい。

Call to undefined method Illuminate\Foundation\Application::bindShared()
https://laracasts.com/discuss/channels/laravel/call-to-undefined-method-illuminatefoundationapplicationbindshared

だけど、配布されているレポジトリをカスタマイズして使うのは避けたい。調べたら、5.2対応のHtmlServiceProviderが配布されていた。

Laravel Collective
https://laravelcollective.com/docs/5.2/html

5.2ではこれを使うべし。

[Composer] 基本的な使い方

composer.json

  • composer.jsonが必要
  • composer.jsonはプロジェクトの依存関係を記述する
  • composer.jsonにはその他のメタデータを含めることもできる

依存関係のインストール

  • 依存関係のインストール後にはcomposer.lockが生成される
  • composer.lockにはインストールされたバージョンのリストが記される
  • install実行時にcomposer.lockが存在するときは、リストされているバージョンをダウンロードする
  • composer.lockを配布することで、チーム内で依存関係を揃えることができる

依存関係の更新

  • 最新の依存関係がインストールされる
  • composer.lockも併せて更新される

Packagist – Composerリポジトリ

Packagist
https://packagist.org/

オートローディング

  • オートロード指定されたライブラリに関しては、vender/autoload.phpが作成される
  • vender/autoload.phpをインクルードすることでオートロードされる
  • オートローダーはPSR-4準拠
    PSR-4: Autoloader – PHP-FIG
    http://www.php-fig.org/psr/psr-4/
  • PSR-0にも対応、またComposer独自のオートローダーもある
  • composer.jsonにautofieldが追加されたら、vender/autoload.phpを生成しなおす必要あり
  • vender/autoload.phpの再生成

参考サイト

Command-line interface / Commands – Composer
https://getcomposer.org/doc/03-cli.md

[Composer] 基本とインストール

セットアップにComposerを使うPHPプロジェクトが増えてきたので、Composerの基本を押さえておく。

公式サイト

Composer
https://getcomposer.org/

イントロダクション

Introduction – Composer
https://getcomposer.org/doc/00-intro.md

  • ComposerはPHPの依存関係を管理するためのツール
  • Composerは、yumやaptといったパッケージマネージャとは違い、プロジェクト単位での管理を行う
  • Composerはプロジェクト内のvendorディレクトリに依存モジュールをインストールする
  • Composerは、globalコマンドを使うことによって、グローバルなプロジェクトもサポートする
  • ComposerはNodeのnpmやRubyのbundlerに強くインスパイアされている

想定:

  • 幾つものライブラリに依存するプロジェクトがある
  • これらのライブラリの幾つかは、さらに他のライブラリに依存している

Composerの役割:

  • あなたが依存するライブラリを定義することを可能にする
  • どのパッケージのどのバージョンがインストール可能でインストールの必要があるかを判断してインストールする

Composerの要件:

  • PHP 5.3.2以降
  • インストーラPHP設定チェックを行ってくれる
  • マルチプラットフォーム Windows、Linux、OSX

インストール

基本的な使い方

Basic usage – Composer
https://getcomposer.org/doc/01-basic-usage.md

[WordPress] プラグインを日本語化する方法

前回のエントリに書いたプラグインTheme My LoginのUIが英語オンリーだったので日本語化を試みる。

ネットで調べたら、Poeditというローカライゼーションツールがあるらしい。早速ダウンロードしてインストール。

ローカライズの元になるのは拡張子POTのファイル。プラグインのサブディレクトリからダウンロードする。

POTファイルをPoeditで開き、オリジナルテキストを日本語に翻訳していく。保存するとPOファイルとMOファイルが作成される。

作成されたPOファイルとMOファイルをwp-content直下のlanguageディレクトリにアップロード。ファイル名は日本語を示すように元ファイルのタイトルに-jaを付加する。

プラグインがアップデートされたときに削除されないように、ローカライズファイルなどのカスタムファイルは独立したディレクトリに保存するルールなんだろうね。

ブラウザに戻ってページを再ロードすると日本語化されているはず。変化が無いなら何かがおかしいので見直す。

参考サイト

Poeditの使い方 [Wordpressのテーマやプラグインを日本語化(多言語)する方法]tontotakumi.com
http://tontotakumi.com/web-seisaku/wordpress/poedit/

[WordPress] Theme My Login – サイトを丸ごと会員制にするプラグイン

許可した人にしか見せないブログを作りたいとの相談あり。

今回の要件は以下の通り。

  • 一言で言えば「ログインしないと閲覧できないサイト」。
  • 記事単位の閲覧制限は不要。全記事の閲覧を制限する。
  • すなわち、会員は全記事閲覧可、非会員は全記事閲覧不可。
  • 会員登録は管理者が行うので入会フォームは不要。
  • 会員登録したユーザには通知メールを投げる、メール文面は管理者がカスタマイズできる。
  • 会員ごとのダッシュボードやプロファイルは不要。
  • 会員がパスワード忘れのリセット・パスワード変更はできるようにする。

サーバー上でBASIC認証をかけるのが手っ取り早い。だけど、閲覧者に個別にユーザ名/パスワードを発行して管理したいし、パスワード忘れの対処もシステムとして用意したい。まあ今の時代にBASIC認証でもないだろうという気もするので、BASIC認証をかけるのは却下。

サイトはWPベースなのでプラグインを探したところ、会員サイト構築用のプラグインはホント山ほど見つかる。記事単位でアクセス制限するものとか、記事要約でチラ見させるけど全部読むには会員登録が必要とか、プラグインによって機能は様々。

で、いろいろ試したところ、要件にマッチしたプラグインが以下。

WordPress › Theme My Login « WordPress Plugins
https://ja.wordpress.org/plugins/theme-my-login/

[WordPress] 更新時にFTP情報入力を促される場合の対処

VPSにWordPressをインストールし、管理者画面からWP本体やテーマ・プラグインなどを最新版にアップデートしようとしたら、接続先サーバーのFTP情報を入力する画面が表示された。WPをレンサバで使っていたときには見たことが無い画面。ネットで調べてみると、WebサーバーがWPの構成ファイルへのアクセス権を持っていない場合に表示されるらしい。確かめてみたらまさしくその通りだった。

WPのディレクトリblog以下の全ファイルのオーナーを変更。

これでFTP情報は聞かれなくなった。一件落着。

参考サイト

WordPress更新時にFTP情報入力画面が表示される場合の対処方法3つ | sand a lot Web & Music Create [札幌]
http://www.sandalot.com/wordpress%E6%9B%B4%E6%96%B0%E3%81%A7ftp%E5%85%A5%E5%8A%9B%E7%94%BB%E9%9D%A2%E3%81%8C%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%AE%E5%AF%BE%E5%87%A6%E6%B3%95/

[Webサービス] draw.io – 無料で使えるオンラインドローソフト

ちょっとした図表を描くのに手頃なソフトを探していたら以下がヒット。

Flow Chart Maker & Online Diagram Software
https://www.draw.io/

drawio

シンプルな画面レイアウト。機能が絞り込まれていて解りやすい。シェイプ(描画オブジェクト)が数多く用意されていて、UMLやフローチャートなどエンジニア向けの機能も充実している。作成したデータはローカルデバイス以外にも、Google Drive、OneDrive、Dropboxなどのクラウドストレージにも保存できる。結構機能は充実している割にお手軽な感じなのが僕好み。

開発しているのはこちらの会社らしい。

JavaScript Diagramming
https://www.jgraph.com/index.html

[Unix] シェルスクリプトのロギングに役立つ関数

検索したら素敵なコードが見つかったので覚え書き。ちょうど必要だったのでありがたい。

snippet – シェルスクリプトのロギングを楽にするtips – Qiita
http://qiita.com/Ets/items/cd3baa5cecbf553f822d