Pages

2019年7月25日木曜日

MySQL Workbench 8.0.17 では MySQL 5.1.73 に接続できない



MySQL Workbench 8.0.17
https://dev.mysql.com/downloads/workbench/8.0.html

MySQL Workbench 8.0.17 にアップデートしてさあ繋げようと思ったら繋がらない。。


「Bad handshake」やってさ。

で、何でやろって調べてたらこんな記事発見

https://www.urtech.ca/2019/01/solved-bad-handshake-mysql-workbench-failed-to-connect-to-sql/

どうやら、MySQL Workbench 8.0.17 では MySQL 5.1.73 に接続できないみたい。

で、解決策は古いバージョンを使いなさいと。

MySQL Workbench 6.3.10
https://dev.mysql.com/downloads/workbench/6.3.html

で入れたら動いたとさ。

Ver 期限
5.7 2020年10月
5.6 2018年2月
5.5 2015年12月
5.1 2013年12月
5.0 2011年12月

サポートも切れてるし仕方ないね。。

2019年7月11日木曜日

[PhpStorm] 2019にバージョンアップしたらフォントが小さくて見にくくなった。。特にドットが酷い。。

自分はできるだけツールはデフォルトの設定で使うようにしている。

理由は環境の構築の時に設定が大変だから。。
頑張って設定してもバージョンアップしたらその設定ができるとは限らないから。。
作者がこのツールではこの設定が良いと思っているものがデフォルトだろうから。。

と、まー理由はどうでもいいけどライセンス更新と合わせて phpstorm 2019にアップデート。

2018の時は特にカラースキーマの変更だけで使えたんだけど、phpstorm 2019 にアップデートして明らかにフォント小さくなった。。

.(ドット) と [半角スペース] の区別ができない。。

それでも我慢した。。
もう無理。。。

って事で数ヶ月頑張ったけどやっぱり変更します。。

カラースキーマ: Monokai



フォント: Source Code Pro



あ~ スッキリ♪

2019年5月8日水曜日

PhpStorm 割引販売のご紹介


https://secure.samuraism.com/referral/8BAEF98D2EE87690D23BB03ED3A7F393

PhpStorm は300円しか割引ありませんが、無いよりは良いですしね。
サムライズムって会社は2018年8月くらい(?)からの日本正規代理店みたいです。

2019年3月26日火曜日

PHPソースからフロー図の自動作成 Visustin以外で

以前 Visustin というツールを利用してPHPのソースからフロー図を作成しようとしただけど、何かしっくり来ない。。

そして別のツールが無いかなと探していたらこんなブラウザアプリを発見した。

code2flow
https://code2flow.com/


無料プランもあるみたい。

早速トップページ画面右上の GET STARTED から試してみた。



自分は今、メインで CakePHP3 を利用しているので、サンプルソースに ブックマークチュートリアル を利用した。

ブックマークチュートリアル
https://book.cakephp.org/3.0/ja/tutorials-and-examples/bookmarks/intro.html

Gut Hub
https://github.com/cakephp/bookmarker-tutorial



早速ソースをコピペしてみるとこんな感じに。
ん~ さすがに見やすい! とはならないけど、コメントもオレンジで表示されてて便利だ。
ソースやフロー図のところをマウスオーバーすると対となる箇所にガイドが付いて解りやすい。

ソースレビューなどを行う時にこれは便利な気がする。

なかなかこまめに使う場面が自分には無いけども、良いものを見つけたかな。

2018年11月21日水曜日

[CakePHP3] 管理画面とそれ意外でCSRF用のCookieName(クッキー名)を変更したい

/src/Application.php のデフォルト指定をまず削除。
本当は設定を更新したかったが、方法が見つからず。。

$middlewareQueue->get(3) からできるかなと思ったけど無理だよね。。
てか名前も指定できるようになってたらいいのに。。
->add した瞬間にこれ実行してるのかな。。

まーとりあえず以下の方法で対応しました。

public function middleware($middlewareQueue)
{
    $middlewareQueue
        // Catch any exceptions in the lower layers,
        // and make an error page/response
        ->add(ErrorHandlerMiddleware::class)

        // Handle plugin/theme assets like CakePHP normally does.
        ->add(AssetMiddleware::class)

        // Add routing middleware.
        // Routes collection cache enabled by default, to disable route caching
        // pass null as cacheConfig, example: `new RoutingMiddleware($this)`
        // you might want to disable this cache in case your routing is extremely simple
        ->add(new RoutingMiddleware($this, '_cake_routes_'))

        // Add csrf middleware.
        ->add(new CsrfProtectionMiddleware([
            'cookieName' => 'csrf',
            'secure' => true,
            'httpOnly' => true,
        ]));

    return $middlewareQueue;
}

上記がデフォルトの内容となりますが、これから

// Add csrf middleware.
->add(new CsrfProtectionMiddleware([
    'cookieName' => 'csrf',
    'secure' => true,
    'httpOnly' => true,
]));

の部分を削除します。

public function middleware($middlewareQueue)
{
    $middlewareQueue
        // Catch any exceptions in the lower layers,
        // and make an error page/response
        ->add(ErrorHandlerMiddleware::class)

        // Handle plugin/theme assets like CakePHP normally does.
        ->add(AssetMiddleware::class)

        // Add routing middleware.
        // Routes collection cache enabled by default, to disable route caching
        // pass null as cacheConfig, example: `new RoutingMiddleware($this)`
        // you might want to disable this cache in case your routing is extremely simple
        ->add(new RoutingMiddleware($this, '_cake_routes_'));

    return $middlewareQueue;
}

するとこうなる。

/src/Application.php で分岐させても良いけど、Pluginのための分岐なので、
分岐はPlugin側でやる事に。
/plugins/Manage/config/bootstrap.php

ちなみに /plugins/Manage は管理画面用に作成したプラグイン。

plugins/Manage/config/bootstrap.php を更新。

以下の分岐を作成していたので、その中で

use Cake\Event\EventManager;
use Cake\Http\Middleware\CsrfProtectionMiddleware;

$cookieName = 'csrf';
if (!empty($_SERVER['REQUEST_URI']) && preg_match('/^\/manage*/', $_SERVER['REQUEST_URI'])) {
    $cookieName = 'mcsrf';
}

EventManager::instance()->on(
    'Server.buildMiddleware',
    function ($event, \Cake\Http\MiddlewareQueue $middlewareQueue) use ($cookieName) {
        $middlewareQueue->add(new CsrfProtectionMiddleware([
            'cookieName' => $cookieName,
            'secure' => true,
            'httpOnly' => true,
        ]));
    });

のように更新すればOK。

で、確認してたらどうも csrf、mcsrf の両方が登録されてしまう。

何故なんだろうとハマっていたら DebugBar のAjax?で呼んでいる様子。
なので、 DEBUG false にして確認したら無事 /manage 以下では mcsrf だけが利用されており、 /manage と それ以外 で別のクッキー値を参照するようになりましたとさ。

Followers