HappyQuality https://happyquality.com 株式会社アスタ 代表の技術メモ Sat, 28 Dec 2019 02:44:15 +0000 ja hourly 1 https://wordpress.org/?v=5.7.12 PleiadesでPhpStormを日本語化してみた https://happyquality.com/2019/12/28/3716.htm <![CDATA[suzuki]]> Sat, 28 Dec 2019 02:32:55 +0000 <![CDATA[記事]]> https://happyquality.com/2019/12/28/3716.htm <![CDATA[

VSCodeからPhpStormに乗り換えて良かったこと・悪かったこと – エイリーの備忘録 この記事の デフォルトだと日本語に対応していない という一文を見てPhpStormって日本語化できるの?と思って調...

The post PleiadesでPhpStormを日本語化してみた first appeared on HappyQuality.

]]>
<![CDATA[

VSCodeからPhpStormに乗り換えて良かったこと・悪かったこと – エイリーの備忘録

この記事の

デフォルトだと日本語に対応していない

という一文を見てPhpStormって日本語化できるの?と思って調べたところ、Pleiades All in Oneというパッケージを利用すると日本語化できることがわかった。

JetBrains 製品の日本語化マニュアル – IntelliJ IDEA

オープンソースとして無料公開している Pleiades というツールで、PhpStorm や Android Studio のような IntelliJ IDEA ベースのデスクトップ製品を日本語化することができます。 これは AOP (横断的関心事を解決するテクノロジー) で実行時に Java クラスローダーをフックし、クラスをバイトコードレベルで動的に書き換えて対象の Java アプリケーションを日本語化するもので、10 年以上利用され、今も随時更新されています。

だそうだ。
早速やってみたが簡単に実現できた。

PhpStormを日本語化する

Pleiades – Eclipse、IntelliJ などの日本語化プラグインから対応OSのインストーラをダウンロード(私はMac)して、インストーラーを実行する。私の環境では開発元が未確認のため起動することができなかったので、Macのシステム環境設定... > セキュリティとプライバシー > 一般のタブに表示されている、開発元が未確認だがそのまま開く(うろ覚え)的な項目を選択して開いた。

アプリケーションの場所は、私の場合~/Applications/PhpStorm.appだったので、appファイルを直接選択。

完了メッセージが表示された後PhpStormを立ち上げたところ無事日本語になっていた。

ただ、今まで英語で使ってきて慣れてきているし、PhpStormの使い方を調べるときも英語の記事がほとんどなので、以下の手順で英語に戻した。

PhpStormを英語に戻す

PhpStormを起動して、ようこそ画面の右下のConfigure▼(構成) > Edit Custom VM Options...(カスタム VM オプションの編集...)で、以下の行頭に#でコメントアウトして起動し直すと英語に戻る。

PhpStorm2019.2の部分はバージョンによって異なる。

-javaagent:/Users/astha2/Library/Preferences/PhpStorm2019.2/jp.sourceforge.mergedoc.pleiades/pleiades.jar
↓
# -javaagent:/Users/astha2/Library/Preferences/PhpStorm2019.2/jp.sourceforge.mergedoc.pleiades/pleiades.jar

The post PleiadesでPhpStormを日本語化してみた first appeared on HappyQuality.

]]>
Firefoxですべてのタブを閉じるタブメニューを非表示にする https://happyquality.com/2019/12/20/3711.htm <![CDATA[suzuki]]> Thu, 19 Dec 2019 21:38:00 +0000 <![CDATA[記事]]> https://happyquality.com/2019/12/20/3711.htm <![CDATA[

ヘルプメニューから「トラブルシューティング情報を」開く。 「プロファイルフォルダー」と書かれた行の右側にある「Finderで開く」ボタンを押す。 表示されたFinderのchromeディレクトリ下にあるuserChrom...

The post Firefoxですべてのタブを閉じるタブメニューを非表示にする first appeared on HappyQuality.

]]>
<![CDATA[

ヘルプメニューから「トラブルシューティング情報を」開く。

「プロファイルフォルダー」と書かれた行の右側にある「Finderで開く」ボタンを押す。

表示されたFinderのchromeディレクトリ下にあるuserChrome.cssを開き、下記の記述を追加。

menuitem[label="他のタブをすべて閉じる"] {
    display: none !important;
}

出典 : Firefox 3.5 で「他のタブをすべて閉じる」を非表示にする – メモの日々(2009-09-30)

The post Firefoxですべてのタブを閉じるタブメニューを非表示にする first appeared on HappyQuality.

]]>
BoostnoteからWordPressに記事を投稿する。 https://happyquality.com/2019/12/20/3703.htm <![CDATA[suzuki]]> Thu, 19 Dec 2019 21:28:39 +0000 <![CDATA[記事]]> https://happyquality.com/2019/12/20/3703.htm <![CDATA[

JWT(JSON Web Token)を使う方法もあるけど、JWTに対応するためのJWT Authentication for WP REST APIのDescriptionが.htaccessを使用したApacheの設...

The post BoostnoteからWordPressに記事を投稿する。 first appeared on HappyQuality.

]]>
<![CDATA[

JWT(JSON Web Token)を使う方法もあるけど、JWTに対応するためのJWT Authentication for WP REST APIのDescriptionが.htaccessを使用したApacheの設定方法しか書かれていなかったので、Nginxを利用している私はユーザ認証で利用することにした。

Application Passwordsプラグインをインストール

WordPress管理画面メニュー > プラグイン > 新規追加 からユーザにアプリケーションごとのパスワードを発行することができるApplication Passwordsというプラグインを検索してインストールする。

Application Passwordsで発行されたアプリケーションパスワードは、REST APIやXML-RPCなどのAPIリクエストの認証のみに使用でき、通常のサイトログインはできないため、漏洩したときの被害を限定することができる。
また、パスワードが不要になればアプリケーションごとに即座に削除できる。

WordPressのユーザにアプリケーションパスワードを生成する

WordPress管理画面メニュー > ユーザ > ユーザ一覧 > 編集 を開き、最下部に追加されているApplication Passwords というセクションの入力欄に、アプリケーションの名前(Boostnoteなど)を入れてAdd Newする。

※導入しているプラグインの構成によってはApplication Passwordsのセクションが最下部ではないこともあります。

すると4桁ごとに区切られたパスワードが表示されるのでこれをコピーしておく。

このパスワードは1度しか表示できないため、もしコピーに失敗するとRevokeして再度追加するはめになる。
BoostnoteのBlog投稿がうまくいくまで表示し続けることをおすすめする。

Boostnoteのブログ投稿設定

Boostnoteの設定メニュー(MacならCmd + ,)を開く。

ディレクティブ 設定値
ブログの種類 wordpress
ブログのアドレス https://[自分のブログのドメイン]/wp-json
認証方法 ユーザ
パスワード 先ほど発行した4桁ごとに区切られたパスワードをコピペ

を設定して保存する。

投稿確認

Boostnoteを3ペインにしているのであれば、真ん中の記事タイトルが表示されている箇所を右クリックして、ブログを公開を選択するとWordpressに記事を公開してくれる。

成功すると以下のようなポップアップが表示されるので、Open Blogで投稿されたブログを開くことができるし、確認ボタンで閉じることができる。

ちなみにMarkdownを解釈するプラグインが入っていなくても、きちんとHTMLに置き換えられたコードが転送されているように思えた。

The post BoostnoteからWordPressに記事を投稿する。 first appeared on HappyQuality.

]]>
macOS10.14 MojaveにアップデートしたらVagrantが動作しなくなった問題の対処 https://happyquality.com/2018/10/19/3674.htm <![CDATA[suzuki]]> Fri, 19 Oct 2018 08:23:47 +0000 <![CDATA[メモ]]> <![CDATA[mac]]> <![CDATA[vagrant]]> https://happyquality.com/?p=3674 <![CDATA[

macOSアップデート前のVagrantの環境は以下の通り。 macOS 10.13.x → 10.14 VirtualBox 5.1.10 Vagrant 1.8.7 だいぶ古い組み合わせで使っていたので、Mojave...

The post macOS10.14 MojaveにアップデートしたらVagrantが動作しなくなった問題の対処 first appeared on HappyQuality.

]]>
<![CDATA[

macOSアップデート前のVagrantの環境は以下の通り。

macOS 10.13.x → 10.14
VirtualBox 5.1.10
Vagrant 1.8.7

だいぶ古い組み合わせで使っていたので、MojaveへのアップデートでVirtualBoxが起動できなくなってしまいました。
そのためVagrantが動作するように各ソフトウェアをアップデートしていきます。

VirtualBoxのアップデート

Downloads ? Oracle VM VirtualBox
こちらから最新のVirtualBoxをダウンロードしました。現時点で5.2.20です。
.pkgファイルからインストールしてください。

すると今度は、Vagrant 1.8.7はVirtualBoxの5.1までしか動作しないというエラーがでました。

The provider &#039;virtualbox&#039; that was requested to back the machine
&#039;default&#039; is reporting that it isn&#039;t usable on this system. The
reason is shown below:

Vagrant has detected that you have a version of VirtualBox installed
that is not supported by this version of Vagrant. Please install one of
the supported versions listed below to use Vagrant:

4.0, 4.1, 4.2, 4.3, 5.0, 5.1

A Vagrant update may also be available that adds support for the version
you specified. Please check www.vagrantup.com/downloads.html to download
the latest version.

Vagrantのアップデート

Vagrantをアップデートします。

Download – Vagrant by HashiCorp
こちらでから最新のVagrantをダウンロードをしました。現時点で2.2.0です。
コマンドラインからアップデートできるかと思ったのですが、私が調べた限りだとインストーラからアップデートするのが一般的のようです。

同じように.pkgからインストールするとプラグインが正しく初期化出来ないというエラーが出ました。おそらくアップデートしたvagrantのバージョンと合わないのでしょう。

Vagrant failed to initialize at a very early stage:

The plugins failed to initialize correctly. This may be due to manual
modifications made within the Vagrant home directory. Vagrant can
attempt to automatically correct this issue by running:

  vagrant plugin repair

If Vagrant was recently updated, this error may be due to incompatible
versions of dependencies. To fix this problem please remove and re-install
all plugins. Vagrant can attempt to do this automatically by running:

  vagrant plugin expunge --reinstall

Or you may want to try updating the installed plugins to their latest
versions:

  vagrant plugin update

Error message given during initialization: Unable to resolve dependency: user requested &#039;sahara (&gt; 0)&#039;

Vagrantのプラグインをアップデートする

先ほどのエラーメッセージには色々と対処方法が示されていましたが、とりあえずプラグインのアップデートを試してみます。

$ vagrant plugin update
Updating installed plugins...
Fetching: open4-1.3.4.gem (100%)
Fetching: Platform-0.4.1.gem (100%)
Fetching: popen4-0.1.2.gem (100%)
Fetching: sahara-0.0.17.gem (100%)
Fetching: vagrant-hostsupdater-1.1.1.160.gem (100%)
Fetching: vagrant-share-1.1.9.gem (100%)
Fetching: vagrant-cachier-1.2.1.gem (100%)
Updated &#039;sahara&#039; to version &#039;0.0.17&#039;!
Updated &#039;vagrant-cachier&#039; to version &#039;1.2.1&#039;!
Updated &#039;vagrant-hostsupdater&#039; to version &#039;1.1.1.160&#039;!
Updated &#039;vagrant-share&#039; to version &#039;1.1.9&#039;!

うまくいきました。
これでブラウザからhost設定したサイトを開いてみたところ正常に表示することが出来ました。

更新内容は以下の通り。

macOS 10.13.x → 10.14
VirtualBox 5.1.10 → 5.2.20
Vagrant 1.8.7 → 2.2.20
Vagrant plugins
sahara (0.0.17, global)
vagrant-cachier (1.2.1, global)
vagrant-hostsupdater (1.1.1.160, global)
vagrant-share (1.1.9, global)
※Vagrant pluginsはupdate前のplugin listがエラーで実行できなかったので元のバージョンはわかりませんでした。

なのでmacOSをアップデートしてVagrantが動作しなくなったら

  1. `vagrant up`のエラーメッセージを確認する
  2. VirtualBox由来のエラーが出たらVirtualBoxを更新する
  3. Vagrant由来のエラーが出たらVagrantを更新する
  4. Vagrantのプラグイン由来のエラーが出たらプラグインを更新する

という手順で対応すると動くんじゃないかな。と思います。

The post macOS10.14 MojaveにアップデートしたらVagrantが動作しなくなった問題の対処 first appeared on HappyQuality.

]]>
[CakePHP2]アプリケーションのスケルトン構築手順メモ https://happyquality.com/2018/06/14/3663.htm <![CDATA[suzuki]]> Thu, 14 Jun 2018 05:40:17 +0000 <![CDATA[記事]]> <![CDATA[CakePHP2]]> <![CDATA[composer]]> https://happyquality.com/?p=3663 <![CDATA[

久しぶりにCakePHP2系の案件なので、アプリケーションの骨組みとなるスケルトン構築手順についてメモします。 ComposerでCakePHP2系のインストール composer.pharにPATHが通っている前提で進...

The post [CakePHP2]アプリケーションのスケルトン構築手順メモ first appeared on HappyQuality.

]]>
<![CDATA[

久しぶりにCakePHP2系の案件なので、アプリケーションの骨組みとなるスケルトン構築手順についてメモします。

ComposerでCakePHP2系のインストール

composer.pharにPATHが通っている前提で進めます。*1

基本的には「応用インストール – 2.x」このページの通り進めますが、異なるやり方をする箇所は都度記述します。

composer.jsonを作成

CakePHPをcomposerインストールするためのcomposer.jsonを作成します。
コンソールから

composer require cakephp/cakephp &quot;&lt;3.0.0&quot;

上記のようにインストールすることも出来ますが、Cookbookにならってvendor-dirVendorに変更*2 するため、マニュアル通りすすめます。
ちなみにインストールするパスは/var/www/とし、cakephpのバージョンは"<3.0.0"で2系の最新となるように設定します。

/var/www/composer.json

{
    &quot;name&quot;: &quot;example-app&quot;,
    &quot;require&quot;: {
        &quot;cakephp/cakephp&quot;: &quot;&lt;3.0.0&quot;
    },
    &quot;config&quot;: {
        &quot;vendor-dir&quot;: &quot;Vendor/&quot;
    }
}

さらに、PHPUnitやCakePHPのプラグインDebugkitなどのライブラリもcomposer.jsonに追加します。

PHPUnit ? The PHP Testing Framework
cakephp/debug_kit at 2.2
cakephp/cakephp-codesniffer: CakePHP Code Sniffer
CakeDC/users at 2.x
slywalker/cakephp-plugin-boost_cake: Bootstrap Plugin for CakePHP

{
  &quot;name&quot;: &quot;astha/example-app&quot;,
  &quot;description&quot;: &quot;The CakePHP2 Skeleton for Astha&quot;,
  &quot;authors&quot;: [
    {
      &quot;name&quot;: &quot;Astha co.ltd.&quot;,
    }
  ],
  &quot;require&quot;: {
    &quot;php&quot;: &quot;&gt;=5.3.0&quot;,
    &quot;cakephp/cakephp&quot;: &quot;&gt;=2.7.9,&lt;3.0.0&quot;,
    &quot;cakedc/users&quot;: &quot;2.*&quot;
  },
  &quot;require-dev&quot;: {
    &quot;phpunit/phpunit&quot;: &quot;3.7.*&quot;,
    &quot;cakephp/debug_kit&quot; : &quot;&gt;=2.2.4,&lt;3.0.0&quot;,
    &quot;slywalker/boost_cake&quot;: &quot;*&quot;,
    &quot;cakephp/cakephp-codesniffer&quot;: &quot;&gt;=1.0.0&quot;
  },
  &quot;config&quot;: {
    &quot;vendor-dir&quot;: &quot;Vendor/&quot;
  },
  &quot;extra&quot;: {
    &quot;installer-paths&quot;: {
      &quot;./Common/plugins/{$name}/&quot;: [
        &quot;cakephp/debug_kit&quot;,
        &quot;slywalker/boost_cake&quot;,
    &quot;cakedc/users&quot;
      ]
    }
  }
}

注目すべきはconfigではvendorのディレクトリを指定していることに、extraでCakePHPのプラグインのインストールパスを指定していることです。

/Common/plugins/{$name}/というパスは、複数のアプリケーションでプラグインやモデルを使い回せるように弊社で行っている独特な指定なので、通常の環境には当てはまらないことに注意してください。

composer install

コンソールからcomposer installを実行。

cd /var/www
composer install

bakeコマンドでprojectを作成

今までの作業で/var/www/Vendor/bincakeコマンドが置かれているので以下のコマンドでappプロジェクトを作成する。

Vendor/bin/cake bake project /var/www/app

/var/wwwappディレクトリが作成され、必要なファイルが一式揃う。

コアのパス修正

bakeで作成されたプロジェクトから参照されるCAKE_CORE_INCLUDE_PATHが正しくないので、次の箇所を修正する。

app/webroot/index.php
DS . APP_DIRが不要。

define(&#039;CAKE_CORE_INCLUDE_PATH&#039;,  ROOT . DS . APP_DIR . DS . &#039;Vendor&#039; . DS . &#039;cakephp&#039; . DS . &#039;cakephp&#039; . DS . &#039;lib&#039;);
↓
define(&#039;CAKE_CORE_INCLUDE_PATH&#039;,  ROOT . DS . &#039;Vendor&#039; . DS . &#039;cakephp&#039; . DS . &#039;cakephp&#039; . DS . &#039;lib&#039;);

CakePHPの初期設定

app/Config内のファイルを設定していきます。

core.php

このファイルで必ず触らなければならないのはSecurity.saltSecurity.cipherSeedです。直前のコメントに従ってそれぞれ任意の文字列を指定します。

bootstrap.php

App::Build

弊社ではModelHelperComponentPluginを複数のアプリケーションで使い回せるように、ルートディレクトリにCommonディレクトリを作成して*3 格納しています。
そのためApp::buildを以下のように設定します。

    App::build(array(
        &#039;Model&#039; =&gt; array(ROOT . DS . &#039;Common&#039; . DS . &#039;Model&#039; . DS),
        &#039;Model/Datasource&#039; =&gt; array(ROOT . DS . &#039;Common&#039; . DS . &#039;Model&#039; . DS . &#039;Datasource&#039; . DS),
        &#039;Model/Behavior&#039; =&gt; array(ROOT . DS . &#039;Common&#039; . DS . &#039;Model&#039; . DS . &#039;Behavior&#039; . DS),
        &#039;View/Helper&#039; =&gt; array(
            ROOT . DS . &#039;Common&#039; . DS . &#039;Helper&#039; . DS,
            APP . DS . &#039;View&#039; . DS . &#039;Helper&#039; . DS,
        ),
        &#039;Controller/Component&#039; =&gt; array(ROOT . DS . &#039;Common&#039; . DS . &#039;Component&#039; . DS),
        &#039;Plugin&#039; =&gt; array(ROOT . DS . &#039;Common&#039; . DS . &#039;plugins&#039; . DS, APP . DS . &#039;Plugin&#039; . DS),
    ));

CakePlugin::load

プラグインのロードの記述。

    CakePlugin::load(&#039;DebugKit&#039;);
    CakePlugin::load(&#039;BoostCake&#039;);
    CakePlugin::load(&#039;Users&#039;, [&#039;routes&#039; =&gt; true]);

Usersプラグインの設定

    // Users設定
    Configure::write(&#039;Users.emailConfig&#039;, &#039;default&#039;);
    Configure::write(&#039;App.defaultEmail&#039;,&#039;[email protected]&#039;);
    Configure::write(&#039;Users.roles&#039;, array(
        &#039;admin&#039; =&gt; &#039;管理者&#039;,
        &#039;user&#039; =&gt; &#039;一般ユーザ&#039;
    ));
    // ユーザ自身の登録を許さない
    Configure::write(&#039;Users.allowRegistration&#039;, false);

database.php

データベースの設定

email.php

メール送信設定

  1. 通っていない環境ならcomposer/[設置場所]/composer.pharに読み替えてください
  2. デフォルトではvendorとなる
  3. 今回なら/var/www/Common

The post [CakePHP2]アプリケーションのスケルトン構築手順メモ first appeared on HappyQuality.

]]>