My days of...

生活のことなど、がんばろう

CakePHP3ではテーブルを使わない場合、特に何もしなくてもいいかも

CakePHP3でTableを使わないようにするにはどうすればいいのか調べてみたら、特に何もする必要はなかった。

データベースが使えない(MySQLの設定は初期値のまま)で、Controllerを作成して、Viewファイルを作成してアクセスしたら、そのままエラーなく表示できました。

Modelを使う必要がないということでしょうか。

CakePHP2以下の場合、Modelに

$useTable = False; 

を書いてテーブルを使わないようにしていたので、Googleなどで検索してみてもほとんど出てこなかったので、そういうこと?と感じたり。

CakePHP3の場合、全部Controllerの中に書けばいいのか。

 

 

Xcode8にバージョンアップしたら表示されるようになったメッセージを表示させない方法

Xcodeをバージョン8.0にしたら次のようなメッセージがXcodeのターミナル部分に表示されるように。

2016-09-16 19:07:04.195268 FoodTracker2[2469:856376] subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-16 19:07:04.201821 FoodTracker2[2469:856376] subsystem: com.apple.UIKit, category: HIDEventIncoming, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-16 19:07:04.212705 FoodTracker2[2469:856372] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0
2016-09-16 19:07:04.229540 FoodTracker2[2469:856309] subsystem: com.apple.UIKit, category: StatusBar, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 1, privacy_setting: 2, enable_private_data: 0
2016-09-16 19:07:04.254204 FoodTracker2[2469:856309] subsystem: com.apple.BackBoardServices.fence, category: App, enable_level: 1, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0, enable_private_data: 0

Googleで検索したら、stackoverflowに同様の質問とその回答がありました。

stackoverflow.com

シミュレータまたは実機を選択するアイコンの左隣の文字の部分をクリックして、Edit Scheme をクリックし、+ボタンを押して、 Environment Variableに次を追加
NameにOS_ACTIVITY_MODE
Valueにdisable
これで上記メッセージが表示されなくなりました。

Xcodeではじめる 簡単iPhoneアプリ開発[Xcode 8 & Swift 3対応]

Xcodeではじめる 簡単iPhoneアプリ開発[Xcode 8 & Swift 3対応]

 

 

 

Vagrant環境のUbuntu 16.04にMagento2をインストールする

約2週間がかりでVirtualBoxVagrantの環境にMagentoをインストールできたのでその際のメモ。

目的は、VirtualBoxVagrantを利用してUbuntu 16.04をインストールし、LAMP環境を作ってから、Magento2をインストールすること。

VirtualBoxVagrantはすでにインストール済み、というのが前提です。

virtual machineもvagrant init、vagrant upなどして先に作成しておきます。

今回りようしたボックスは、

Vagrant box ubuntu/xenial64 | Atlas by HashiCorp

を使いました。Ubuntu 16.04の環境にApache2.4とMySQL5.7、PHP7をインストールしていきます。

 

1)Vagrantfileの設定
config.vm.network "private_network", ip: "192.168.33.15"
config.vm.synced_folder "./", "/var/www/html", mount_options: ['dmode=777', 'fmode=777']

の2行を追加。


2) Apache2、MySQL、PHP7をインストールする
sudo apt-get install apache2
sudo apt-get install mysql-server
sudo apt-get install php php-intl php-curl php-gd php-zip phpmyadmin

 

3)mod_rewriteを有効にする
sudo a2enmod rewrite

 

4)Apachemod_rewriteを動くようにする
/etc/apache2/apache2.conf に下記の行を書く
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order deny,allow
Require all granted
</Directory>

 変更後、sudo systemctl restart apache2 を行い、適用する。

 

5)データベースを作成する
データベースの名前は「magento」として作成しました。

 

6)Magento2をダウンロード、インストールする

www.magentocommerce.com


ここからダウンロード。この時はver2.1.1のMagentoでした。
ホストOSはMacなので、tar.gz形式でダウンロードしました。zip形式もあります。

展開後、フォルダごとVagrantの同期フォルダにコピーし、ブラウザでhttp://192.168.33.15/フォルダ名>
へアクセスする。

今回フォルダ名をmagento2にしたので、
http://192.168.33.15/magento2
へアクセスすると、セットアップが開始されます。必要なモジュールやapache、PHP、MySQLのバージョンなどの確認があるのでそれでチェックしていきます。不足しているモジュールがあったらインストールします。

インストールウィザードの手順に従い進行していきます。利用するデータベース名には、5)で作成したデータベース名を入れます。
最後にインストールを開始すると、ちょっと長くかかります。失敗したんじゃない?と思うくらい長くかかる場合があるのですが、待ってみましょう。

たまに、インストールが本当に途中で止まる場合もあるので、PHPの設定を見直す必要も出てきます。
その場合、php.iniファイルを開き、
max_execution_time = 18000
max_input_time = 1800
memory_limit = 1024M
と変更します。

Apacheで表示するrootのフォルダではなく、一つフォルダを作っているので、.htaccessに
RewriteBase /magento2/
を追加します。

これでMagento2をインストールできました。

ログイン画面が表示できればOKですが、mod_rewrite系がうまくいかない場合、404 Not Foundが表示されるので、設定等を見直す必要が出てきます。

 

オープンソースECサイト構築ソフトMagentoガイドブック

オープンソースECサイト構築ソフトMagentoガイドブック

 
マジェントで構築するECサイト

マジェントで構築するECサイト

 

 正直なところ、virtual machineの性能も高くしておかないと、動きが遅く、ちょっと大変かもしれません。ログイン画面を始めて開くのに、1分近く待ったような気がします。その後はキャッシュなどのお陰で割と早くなりますが、それでも待ちます。

 

目覚まし時計が動いたら、時間通りに目が覚めて起きられるものでしょうか?そうは問屋が卸さないことは多々ありそう

9月に入ってすぐの頃、車の中でラジオを聞いていると、新学期が始まって朝起きられるか心配、という内容のことが話されていた。夏休みが終わり、言ってしまえばダラけた生活から朝早く起きて学校へ行かなければならないという面倒な生活がまた始まることへの不安なのだろうし、自分もどちらかというと目覚ましで起きられない方だったので、どんな解決策があるのかちょっと興味を持って聞いていた。

すると、目覚ましを複数かける、目覚ましを隠す、目覚ましが動くように・・・と目覚まし時計のアラーム音で起きる前提で話していることに少し驚いた。なぜなら、目覚まし時計で起きられないということは、目覚まし時計が鳴らす音や振動に反応しないから起きられない、という人があまりいないのだろうか。

自分はどちらかというと無意識で目覚ましのアラームを止めるか、無視して(聞こえてないので)寝続ける系だったので、音が鳴っても起きない人の場合は何をやっても無理なのかとちょっとがっかりだった。

しかし、世の中には動く目覚ましというのがあるのか、というのを知ったのも初耳だった。

 

 これなら目覚ましが鳴って部屋中を動いていたら、鬱陶しいから起きるかもしれない。虫が部屋の中にいる、と思ったらちょっと嫌だし。

 

フライングアラームクロック (空飛ぶ目覚まし時計)

フライングアラームクロック (空飛ぶ目覚まし時計)

 

 部屋の中を飛ぶ目覚ましも。面白い目覚まし時計が増えてますね。

 

入力補完は大事

CakePHP3.3のチュートリアルでAuthコンポーネントを使ったログイン、ログアウトをちょっとやってますが、手間取ってしまった。

理由は簡単。UsersController.php内のinitialize()の書き間違い。AtomとVSCodeを使ったのですが、自分のスペルミスに気がつかず、半日くらい悩みました。入力ミスをしたことが原因ですが、CakePHPに限らず、フレームワークに対応した入力補完のできるIDEを使う方が、こういった余計なストレスは減りそうに感じました。

NetBeansを入れてみようか、と考えてみたりしています。PhpStormの方が良いっぽいのですが、採算がとれるようなものではないので、ちょっと思案のしどころです。 

作って覚えるJava NetBeans入門

作って覚えるJava NetBeans入門

 
PHPエンジニア養成読本 〔現場で役立つイマドキ開発ノウハウ満載! 〕 (Software Design plus)

PHPエンジニア養成読本 〔現場で役立つイマドキ開発ノウハウ満載! 〕 (Software Design plus)

 

 

防災の日で、ソーラー充電器とラジオでスマートフォンの充電に

もう直ぐ9月1日。防災の日になります。昨今は、地震や台風などの被害がニュースを騒がせており、備えあれば憂いなし、といったことをよく耳にしたり、目にしたりすることが増えたような気がします。2011年の地震の時は、携帯電話の電波が通じず、ラジオで情報を手に入れていたのを覚えています。

その頃は手回し式充電型ラジオがよくあったな、と覚えています。今はどうでしょう?

キューブ型・・・ヘー○ルハウスっぽい感じ。今あのマスコットキャラはいなくなっているのか・・・

REDSPYCE◆キューブソーラーラジオ 紫◆CB-402VI【YDKG-kd】[メール便発送、送料無料、代引不可]【smtb-KD】 [防災]

価格:1,280円
(2016/8/30 08:21時点)

スマートフォン充電も可能!

OUTDOOR LOGOS(ロゴス) LLL 3電源・クランクソーラーラジオライト (82100243) [0016_82100243] 非常用持ち出しセット セキュリティ 防災 日用品 生活雑貨 キッチン 防災セット 防災関連グッズ 手芸 文房具 品雑貨 非常・防災用セット 防災用品 非常用・防災用用品

価格:4,644円
(2016/8/30 08:23時点)
感想(0件)

BL109RMSDBK【税込】 ヤザワ ダイナモソーラーラジオ(ブラック) YAZAWA [BL109RMSDBK]【返品種別A】【RCP】

価格:1,270円
(2016/8/30 08:27時点)
感想(0件)

ソーラー充電器も必要かも

ポケモンgo モバイルバッテリー ソーラー充電器 どこでもエナジーWAKAWAKA(ワカワカ) スマホ充電器 iPhone スマホ 充電器 モバイルソーラー 太陽光発電 太陽光充電器 太陽電池 携帯 充電 スマートフォン モバイル LEDライト 05P29Aug16

価格:8,532円
(2016/8/30 08:29時点)
感想(20件)

ソーラー 充電器 ソーラー 充電 ソーラーバッテリー 大容量 10000mah 防水・防塵・耐衝撃アウトドア向け 防災用 iPhone6S・iPad・スマートフォン(スマホ)対応 LEDライト付 モバイルバッテリー 極薄・超軽量「P20Aug16」

価格:4,120円
(2016/8/30 08:30時点)
感想(66件)

災害時だけでなく、アウトドアでも使えて便利そう。 

 

ScotchBoxでCakePHP3.3のbookmarkチュートリアルを試したが、結果が取得できなかった

VagrantでScotch Boxを利用して、CakePHP3.3のブックマークのチュートリアルを試したところ、うまくいかなかった。

ブックマークチュートリアル

タグを指定してブックマークを取得できなかった。

コードは、チュートリアルのものを、そのまま写しただけだったのだけれども、なぜか結果が表示されず。

bookmarkにyahoo.co.jpを登録し、tagは、yahoo、funny、検索と3つ登録したのだが、

http://192.168.33.10/cake3/bookmarks/tagged/funny/yahoo

にアクセスしても

Bookmarks tagged with funny and yahoo

と表示され、パラメーターが渡っているのだが、

BookmarksTable.php内に書いた

public function findTagged(Query $query, array $options)
{

  return $this->find()

  ->distinct(['Bookmarks.id'])
  ->matching('Tags', function($q) use ($options){
  if(empty($options['tag'])) {
    return $q->where(['Tags.title IS' => null]);
  }
  return $q->where(['Tags.title IN' => $options['tag']]);
  });
}

が動作してないっぽいのだが、どこがどう悪いのか、さっぱり。

 

実践 Vagrant

実践 Vagrant