一人もくもく会 α verでサービス開始しました。

program

CakePHP3の優位性を色々

はじめに この記事は下記の1日目としての投稿。 CakePHP3 Advent Calendar 2016 - Qiita 昨今は様々なphpフレームワークがある。Laravelとかは最近流行ったりしていて色々触ってみるが、 自分はやっぱりCakePHP3に帰ってきてしまう。それだけ便利で楽だから…

Angular2のuniversal-starterでangular/material2が使えない

Angular2はuniversal-starterから始めることで簡単にサーバー再度レンダリングができるが、 angular/material2を入れてみようとしたところ、 どうもエラーが出てうまく動かない。 検索してみると、どうも今はちゃんと動かないようだ。(2016-11-28現在) githu…

Angular2アプリを全部無料で公開してみる-Django編

Angular2で開発したアプリケーションを完全に無料で公開できる方法を考えてみた。 要件 上から順に重要度が高い。 Angular2 Angular2のサーバーサイドレンダリング対応 そこそこのDB容量 なるべく無料枠が大きいところ 開発しやすさ 考察 まず、Angular2をサ…

Windows7+Atomでフォルダがロックされる

追記2 WindowsにはProcess Explorerというものがあり、 こういったロックの場合何がロックしているかを知ることができる。 試してみたところ、原因はAtomだった。 Atomを起動しない状態だとブランチ変更し放題だった。 恐らくTreeViewあたりではないかと思わ…

Linux Mint18でapache2.4とphp7

Linux Mint18でapache2.4とphp7を使うとエラーが起きた。 phpMyAdminを使おうと設置して閲覧すると、phpのソースがそのまま表示された。 phpのモジュールがロードされてないっぽいので調べてみると、 /etc/apache2のmods-availableにはphp7関連ファイルがあ…

CakePHP3とLaravel5のマイグレーション比較

phpのフレームワークには大体マイグレーション機能がついている。 業務でアプリケーション開発を行う時は各開発者のローカルの開発環境、サーバー上の開発環境、ステージング環境、本番環境などと分かれていたりするため、 そういった場合はマイグレーション…

mailtodiskでメールが保存されない場合

xamppにはmailtodiskが入っているため、 テストの際はいちいちメールを実際に飛ばさなくても確認ができるので便利。 しかし、ある時どうやってもメールが保存されなくなることがあった。 なぜだろうと思い調べていると、ふとエディタのファイル一覧がたまに…

CakePHP3でアソシエーションが保存されない

CakePHP3は単なるエンティティの保存もアソシエーションを含む保存も全てsaveメソッドで行う。 しかしなぜかこの関連データが保存されない場合があった。 原因を探ってみるとdirtyが無かったため。 Users hasMany Itemsの場合であれば $user->dirty('items');…

CakePHP3でEmailのfromの共通設定をDBで指定する

CakePHP3はapp.phpにてメール送信のfromのデフォルトを簡単に設定できる。 固定ならそれで問題ないのだが、問題はDBの設定でfromを指定したい場合。 bootstrap.phpを見てみると、app.phpの設定はConfigure::consumeで削り取られており、 あとでConfigure::wr…

ReactにReduxを組み合わせると何が楽なのか

React + Reduxを使うとどうメリットがあるかというと、色々とあるとは思う。 ただ、どう楽になるのかというのに焦点をおいてみる。 Reactのみの例 下記のようなコンポーネント構成のアプリケーションを作成するとする。 コンテナ : App ヘッダ : Header ログ…

Twitterを作る 第5回 フォロー

引き続き他のユーザーをフォローする部分を進める。 モデル class Follow(models.Model): """フォロー""" user = models.ForeignKey(User, verbose_name='ユーザー', related_name='follows') target = models.ForeignKey(User, verbose_name='フォローユー…

Bash on Ubuntu on WindowsでDjango

Windows10のアニバーサリーアップデートにて Bash on Ubuntu on Windowsが使用できるようになった。 結構色々普通にちゃんと動くみたいなので、Djangoを動かしてみた。 python 最初からpython2もpython3も入っているらしい。 # python3 --version Python 3.4…

Twitterを作る 第4回 コンポーネント構成考察

Reactのコンポーネントの構成にちょっと悩んだのでメモ。 現在ログイン後の画面はreact-routerでルーティングしている。(まだ1画面しかないが) コンポーネントの構成は下記のようになっている。 Main (routing) MainIndex (メインページ) MainHeader (共…

Twitterを作る 第3回 投稿

投稿機能の作成を進めた。実際の画面は下記のような感じでTwitterと構成は同じような形にしてある。 各パーツはmaterial-ui。すごく便利。 投稿ボタンを押すと下記のようなウィンドウが出てくる。 モデルの作成 モデルは下記のような感じになった。 class Po…

Reactにてrouterのrouteにパラメータを渡す方法

例えば大元のコンポーネントにてajaxで取得したユーザー情報を保持して、 それを別のrouteのコンポーネントにも引き継ぎたい時の話。 (version 15.2.1現在) 渡すのは下記で可能。普通に属性指定すれば良い。 <Router history={browserHistory}> <Route path="/" component={Index} user={this.state.user} /> </Router> 問題は受け取り側の方。 this.props.user これ…

Twitterを作る 第2回 認証

まずはユーザー登録。これがなければ何も話が進まない。 ひとまず下記の第3回までを見てさくっと動作確認とユーザーテーブル作成まで行う。 Python Django入門 (1) - Qiita Python Django入門 (3) - Qiita ログイン前トップページ material-uiでさくっと作成…

Twitterを作る 第1回 概要

これからTwitterを作って行くところを少しずつ公開していきたいと思う。 下記のような環境で作成していく。 Django Djangoはpythonのフレームワーク。 慣れているCakePHPの方が早いが面白くないのでDjangoを練習しつつ作成。 (python3.5 + Django1.9.7) ちな…

さくらのレンタルスタンダードにdjangoを入れて公開

さくらの共用レンタルのスタンダードでのdjango公開方法のメモ。 環境としては下記の通り。 python3.5 django1.9.7 virtualenv MySQL接続 python3.5のインストール ネットで調べてインストール。 .cshrcを見ると下記を追記していた。 pathにpython/binフォル…

CakePHP3のテーブルにprefixを使う方法

CakePHP2まではDB設定でprefixが使用できたのだが、 何故か3になってから設定がなくなっている。 テーブルクラスにそれぞれ設定していくのが普通だが、 bootstrap.phpのuseをたくさんしている箇所に use Cake\Event\EventManager; 末尾に EventManager::inst…

CakePHP3ページネーション時にhead内にSEO対策のlinkタグを挿入する

ページ分けをする際、それらのページは一連の同じページであることを示すために headタグ内に下記のようなタグを挿入する。 下記のような感じ。 <link rel="prev" href="http://www.example.com/article?story=abc&page=1" /> <link rel="next" href="http://www.example.com/article?story=abc&page=3" /> CakePHP2のころからあったようでそちらのマニュアルには書かれているのだが、 下記をheadタグ内に入れておく</link></link>…

さくらサーバーのSSLでLaravel5を正しく動作させる

qiita.com 上記の通り、さくらの共用レンタルでは正しくURLが取得できない。 url, asset, redirect関数など。 Laravel5もほぼ同様だが、フィルターではないので 適当な箇所でhttpsをonに上書きする。 例えばAppServiceProviderのboot等。 if (isset($_SERVER…

Hierselectプラグインの作成

HierselectのjQueryプラグインを作成した。 Hierselectというのは、例えばプルダウンで大、中、小カテゴリを選択する際に、 大カテゴリの選択によって中カテゴリプルダウンの中身を属するもののみに更新し、 さらに中カテゴリの選択によって小カテゴリのプル…

Angular2のフルスクリーンloading表示コンポーネント

Angular2用で何か処理をする間に オーバーレイでloadingを表示するコンポーネントの作成。 Angular2 fullscreen loading component 使い方 読み込む import { LoadingComponent } from "./loading.component"; ディレクティブ指定 directives: [LoadingCompo…

Laravel5でテスト時にtesting設定を使う方法

Laravel5.0での話。 現在の5.2では改善されているのかもしれない。 マニュアルを見ると自動的にtesting環境に切り替えると書いてあるが、 何も変わっている様子が見られないしそもそも設定方法が書かれていない。 仕方がないので色々調べてやってみた。 正し…

CakePHPとLaravelの使い道

ずっとCakePHPを好んで使ってきたが、Laravelがすごく人気が高いとのことなので使用してみて色々と比較。 情報量 Laravelはドキュメントのどのページを見ても何か説明が足りない気がする。 人のパッケージのソースを見たり検索で情報を探したりしなければな…

Laravelのdebugbarでテンプレートに渡された変数を自動的にダンプ

GitHub - barryvdh/laravel-debugbar: Laravel Debugbar (Integrates PHP Debug Bar) を使うと Debugbar::info($var); でdebugbarのMessagesタブにその変数をダンプすることができる。 ビューコンポーサーを利用するとviewにセットした全ての変数を自動的に…

ReactでMinified exception occurredエラーが出る場合

ReactでMinified exception occurredが出ることがある。 エラーが出ているのだが、min.jsの方を使っているとエラーがjsファイル内に記載されていないのでminのついてないjsファイルを読み込むと正常にエラーメッセージが表示される。 ちなみに自分の場合はデ…

CakePHP3のテスト時にBehaviorによるエラー

CakePHP3でテストをする際、突然大量のエラーが発生することがあった。 その直前にやったことといえばBehavior関連のテストの作り込み。 関連するテストが2箇所あるのだが、その両方を実行するとエラーになり、どちらかだけコメントアウトするとエラーが出…

CakePHP3のテスト時にテーブルが見つからない場合

CakePHP3でphpunitを走らせるとテーブルが存在しない旨のエラーが発生。 fixtureもあるしちゃんと設定もしてあるし、なぜ発生するのか不明… という場合。 behaviorのinitializeの中でTableのschemaを取得などしていると、 テーブルをfixtureの設定ではなくim…

CakePHP3のシンプルなアップロードプラグインを作成

CakePHP3用のシンプルなアップロードプラグインを作成した。 GitHub - dala00/cakephp-simple-upload そもそもCakePHP3用のアップロードプラグインは有名なものが存在する。 GitHub - josegonzalez/cakephp-upload: CakePHP3: handle file uploading sans ri…