タイトルの通り、DBがMySQLの状態でダミーデータを作成するeccube:fixtures:generateコマンドを実行すると文字数オーバーだったり、数値がマイナスだったりで失敗する。
SQLSTATE[22001]: String data, right truncated: 1406 Data too long for column ‘file_name’
該当カラムがvarchara(255)のパターン。
dtb_productのnameと、dtb_product_imageのfile_nameで発生する。カラムの文字数を増やせば処理は進む。
SQLSTATE[22003]: Numeric value out of range: 1264 Out of range value for column ‘payment_total’
dtb_orderのtotalやpayment_totalにマイナスの値を指定しているパターン。正数のみを表すunsignedを取ってあげればよいけど、あくまで処理を最後まで進めるための処置。
コマンドの方を修正した方が正しいとは思う。
これで最後まで行くかなぁと思ったら、
Error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2097160 bytes)
・・・PHPのメモリーサイズは多めにね。
最後まで行かなかったけど諸々やり直す気力が出ないのと、ダミーデーターはそれなりの数入ったので調査終了して、メモを残す。
3月7日に開催されましたEC-CUBE東京ユーザグループ初心者向け勉強会3月のスライド資料を公開します。
・・・とはいえ、参加者の方がエンジニアというより店舗運用者やデザイナーの方が多かったので、プログラマー向けの内容だったスライドは早めに切り上げて質問会に変更したのですが。
東京のユーザーグループは偶数月が開発者向けで、奇数月が初心者向けということで、スライドは全てお見せできませんでしたが、様々な店舗運用者の方の意見が聞けて新鮮な勉強会でした!
ある程度納得が行ったので書き残しておく。
EC-CUBE 4はWindows環境だと遅い。
これはEC-CUBE 4というよりSymfonyの問題なのだが、Windows Subsystem for Linuxでも遅い。
私はVisual Studio(Codeでもfor MacでもなくWindowsのVisual Studio)が好きなので、MacをメインPCにする気はない。
ということで、Windows PC上でEC-CUBE 4を快適に触れる環境を考えてみた。
IEDはVisual Studioは向いていないのでVisual Studio Codeを利用し、Xdebugでデバッグが行える環境を目指す。
LAMP環境はDockerに構築する。
ハイパーバイザー型でも問題ないと思う。
DockerはSSHを立てないのが良いみたいだけど、Volumes設定でEC-CUBE 4のソースを共有するとWindows上にファイルを置いてしまい遅くなるので、ここは開発環境と割り切ってSSH接続を行う。
Visual Studio CodeにはSSH FSというSSH接続ができる拡張機能があるが、PHP Debug拡張機能でXdebugを利用しようとするとpathMappingsがうまく動かないのでSSH FSは諦める。
このページにssh:\\で書き出すと動くようなことが書いてあるが、試してみるとC:\\VSCodeDir\ssh:\\というパスになってしまう。現在は上手く動かないのかもしれない。書き方も[]で挟む時点でエラーになるし書式も変わっているのかも?
SSH FSを利用できればより綺麗なのだが、諦めてwin-sshfsでマウントすることにする。
あくまでSSHの接続先をWindowsのドライブのように見せるだけなので、Windows上にファイルは作成されない。ゆえに動作が早い。
これならVisual Studio Codeで開くこともできるし、Xdebugでブレークポイントも張ることができる。
pathMappingsもWindows上のファイルを指定する書き方でOK。
"pathMappings": { // win-sshfsで/var/www/htmlをGドライブにマウントした場合 "/var/www/html/": "G:\\" },
結構まどろっこしいのは認めます。
みなさんはどうやって開発していますか?(そもそもWindowsで開発してない可能性・・・)
追記:2019年3月時点では、win-sshfs(正確にはWinSshFS Foreveryoneという名前らしい)の最新1.6.13でもファイル検索など無理をするとVS Code、win-sshfsもろともフリーズすることがあるので、デバッガーを利用しないなら、VS Codeの拡張機能でSSH FSの方がパフォーマンスは良い。
タイトル通りですが、Udemyで公開中のEC-CUBE 4使い方入門に「バージョン4.0.2の変更点について」を追加いたしました。
4.0.2の新機能や更新内容について解説しています。
その分、決済モジュールの解説動画が遅れてしまいましたが、こちらも3月中には公開予定です。
書籍宣伝もかねて顔を出して、あわよくば5分ぐらい時間をもらってアピールしようと考えていたら、1時間話すことになりました!
書籍の内容をメインに入門者向けの話すというところまでは決まっているのですが、仔細はこれから考えます。
気を付けるポイント、基本構成、4.0.2、ec-cube.co(申し込み多数らしくまだ触れてない)とかネタは色々ありますよね。
申し込みは以下のCompassサイトからお願いします。
日時:2019/03/07(木) 19:00 〜 21:30
場所:Connecting The Dots 代々木 東京都渋谷区代々木1-29-5 (YKビルB1階)
申し込みサイト:Compass:EC-CUBE東京ユーザグループ初心者向け勉強会3月申し込みページ
「EC-CUBE 4 システム構築入門&店舗運営・管理ビギナーズガイド」を発売することができました。
EC-CUBE 4のユーザーサイト・管理サイトの機能解説から、システム構成について解説した書籍です(なんとカラー!)。
Chapter 1から4はEC-CUBE 4でネットショップを構えたい・または構え始める店舗運用者の方にEC-CUBE 4の全体図を知ってもらうという意図で書きました。
Chapter 5から10はEC-CUBE 4で開発を始める方が迷わないように、EC-CUBE 4(というかほぼSymfony)の機能をできるだけ自分でコードを試しながら読み進められるように書きました。開発の第一歩を踏み出すために必要な項目について解説しているので、カスタマイズ事例などはありません。
売れ行きが良ければ、システム開発に特化した厚めの本が書けるかも?(いや、お声がかかれば)
EC-CUBE 4周りの活動としては次回は、Udemyで公開中のEC-CUBE 4 使い方入門の4.0.2解説動画の追加、それから新しく「EC-CUBE 4のシステム開発入門(仮)」を予定しています。
EC-CUBE 4.0.2が登場しました。
クラウド版(ec-cube.co)や新バージョンと4系が活発でうれしい限りです。
大きな機能変更はないようですが、管理ページからファイルを操作する機能の利便性向上とfaviconの設定可能、いくつかのバグ修正が行われているようです。
開発する立場だと、エンティティ拡張周りなどプラグインの不具合が解消されたのが嬉しいですね。
詳しい情報は公式の以下のページを参照ください。
https://www.ec-cube.net/news/detail.php?news_id=324&fbclid=IwAR2qeynNaPCQ6mfZ0CZqRMS-WErp0uHbnIpzXsQ8T_v7Qbge6mjVEfQq1Hw
ComposerとかGit Cloneで指定していたタグを4.0.2に変更すればOK。
#composerを利用するvar php composer.phar create-project ec-cube/ec-cube html "4.0.2" --keep-vcs
公式サイトのzipも4.0.2がDLできるようになっています。
とりあえず、軽く動かす環境はDockerでコード化しているので、バージョンを4.0.2に書き換えて立て直せばOK。
2・3分で4.0.1と4.0.2を切り替えられるので、今回みたいな調べ物はラクチン。
便利な世の中になったものです。
管理サイトの「コンテンツ管理」の項目が増えています。
「CSS管理」と「JavaScript管理」が追加されていますね。
ちなみに4.0.1の項目はこんな感じ。
CSSとJavaScriptが管理ページから追加できます。
それぞれ
/html/user_data/assets/css/customize.css
/html/user_data/assets/js/customize.js
というファイルが作成され、CSSやJavaScriptを記述することができます。
早速、ファイル管理の新機能パスのコピーを使いました、便利。
ファイル管理でファイルのパスをコピーできるようになりました。最近のサイトだとパスやURLをクリックでコピーできることが多いので、これは同じように使えて便利。
ちなみにクリックすると、パスが文字列でも表示されます。
Ctr+VとCtr+Cをよく押し間違える粗忽な私でも安心!
ファイル管理でassets以下のファイルが変更可能になりました。
faviconのパスは・・・
/html/user_data/assets/img/common/favicon.ico
以前はhtml/template/default/assets/img/commonの下だったので、場所も変更になったようですね。
(追記)CSS管理とJavaScript管理の件はファイルの書き込み権限の変更抜けでした(CentOSなのにApacheのユーザーをwww-dataに指定していた・・・あるある)。
2019年2月開催の.NETラボ勉強会でお話させていただきました。
開発ではありませんが、書籍を書く際にDocker for WindowsでEC-CUBEの環境構築を行い、Azure Reposでソース管理、Azure Boardsでタスク管理を利用しました。
そこから、Azure Web Appsにデプロイ・デリバリーとかAzure Pipelinesで自動テストというフロー(書籍のサンプルなのでリリースはありませんが)も描いてみました。
そのほかの登壇者のスライドなどもCompassサイトから確認できます。