Rodhos Soft

備忘録を兼ねた技術的なメモです。Rofhos SoftではiOSアプリ開発を中心としてAndroid, Webサービス等の開発を承っております。まずはご相談下さい。

CakePHP

最初

作る sqlite3設定 rodhos.hatenadiary.jp 命令群 ./bin/cake bake migration CreateProducts name:string description:text created modified ./bin/cake migrations migrate ./bin/cake bake seed Product ./bin/cake migrations seed ./bin/cake bake mode…

Shell

チュートリアルを参照した。 コンソールツール、シェルとタスク - 3.xsrc/Shell直下にHelloShell.phpを作る。 out('Hello world.'); } public function heyThere($name = 'Anonymous') { $this->out('Hey there ' . $name); $this->_hoge…

Migrationの失敗

Exception: There was a problem connecting to the database: SQLSTATE[HY000] [2002] No such file or directory in [/Applications/MAMP/htdocs/hoge/vendor/robmorgan/phinx/src/Phinx/Db/Adapter/MysqlAdapter.php, line 115] のようなエラーに悩まされ…

ViewBlock

Class Cake\View\ViewBlock | CakePHP 3.4 使い方 以下を参照 xn--cakephp-gt4fral1s5v.jp以下作成中..。

View

rederによってViewがレンダリングされる。その部分をみてみる。 public function render($view = null, $layout = null) { // すでにレンダリングされているなら終わり if ($this->hasRendered) { return null; } // レイアウトがメソッドの引数に指定されて…

ViewBuilder

ビューを作る。build()のところで作っている。 public function build($vars = [], ServerRequest $request = null, Response $response = null, EventManager $events = null) { $className = $this->_className; if ($className === null) { $className = …

View

AppViewが基底でViewを継承している。自作のヘルパーなどはinitialize内で $this->loadHelper('MyUtils');してやることで使えるようになる。 View EventDispatcherInterfaceを実装している。 使用しているtrait CellTrait EventDispatcherTrait; LogTrait; R…

URLヘルパ

URLを作る。 $this->Url->build(['action' => 'home', $article->id]) で /kagero3/articles/view/1 ができる。エレメントとHTMLヘルパ等と組み合わせて次のようなものが作れた。 Html->tag( "a", $this->Element( "agora_card", [ "title" => $article->tit…

HTMLヘルパー その2

以下を参考に色々さわっている。 qiita.com CakePHP 1.3 - Htmlヘルパー スクリプトタグ Html->script('myscripts'); ?> <script src="/kagero3/js/myscripts.js"></script> CSS Html->css( 'mycss'); ?> <link rel="stylesheet" href="/kagero3/css/mycss.css"/> 画像リンク Html->image( 'cake.power.gif', ["alt" => "…</link>

HTMLヘルパー

qiita.com 単純にリンク Html->link("hello","http://rodhos.info/") ?> は次のように変換される。 <a href="http://rodhos.info/">hello</a> つまり、第1引数が表示する文字で、第2引数がURL。 第2引数は以下のように連想配列で指定することもできる。 Html->link(__('View'), ['action' =>…

テーブルのところ

CakePHPのbakeで作られたテーブル <table cellpadding="0" cellspacing="0"> <thead> <tr> <th scope="col">Paginator->sort('id') ?></th> <th scope="col">Paginator->sort('title') ?></th> <th scope="col">Paginator->sort('category_id') ?></th> <th scope="col">Paginator->sort…</th></tr></thead></table>

EventManager

登録方法は2種類。 EventListenerInterfaceを実装してonで自身を登録するか、onでキーとともに無名関数を登録しておくか。Eventを作ってdispatchすることも可能。登録したものの削除はoffでできる。使いすぎて密結合に注意。イベントシステム - 3.x

App

リソースの位置とパスの管理 Appクラス - 3.x classname クラス名解決 path パスの検索 core 内部パッケージのパスの検索

Hello World 4回目

アプリ作る。cakephp 3.5 composer create-project --prefer-dist cakephp/app MyApp2017 中に入る cd MyApp2017/ sqlite3のdb作成 sqlite3 MyApp2017.db sqlite> .tables sqlite> .q コンフィグでデータベースをsqlite3に。atomは好きなエディタで。 atom .…

migration

テーブルを作る ./bin/cake bake migration CreateProducts name:string description:text created modified Migrations - 3.xマイグレーション実行 ./bin/cake migrations migrate これでproductsテーブルができた。 現在のスナップショット bin/cake bake …

bake

次のものがbakeできるようだ。 $ ./bin/cake bake - all - behavior - cell - component - controller - fixture - form - helper - mailer - middleware - migration - migration_diff - migration_snapshot - model - plugin - seed - shell - shell_helpe…

ローカルサーバ

./bin/cake server で立ち上がる。

migrationのbakeでerror

migrationを試そうとbakeを実行したところ次のようなエラーがおきた。 Error: [PDOException] SQLSTATE[HY000] [2002] No such file or directory in /Applications/MAMP/htdocs/hoge/vendor/cakephp/cakephp/src/Database/Driver/PDODriverTrait.php on lin…

テーブル

Articlesテーブルの$idでCategories、Avatars、ReadMarksの情報を含めて返却して欲しいときは以下の用に書く。 $article = $this->Articles->get($id,[ 'contain' => ['Categories', 'Avatars', 'ReadMarks'] ]); 同一のアバターIDでArticleIDが指定のものよ…

認証 AuthComponent

認証 - 3.x AuthComponentは三タイプの認証できる。 FormAuthenticate ログインフォーム POSTで (デフォルト) BasicAuthenticate ベーシック認証 DigestAuthenticate ダイジェストHTTP認証 認証ハンドラの設定 // シンプルな設定 public function initializ…

ビヘイビア群

CounterCacheBehavior 例えばコメント数をエンティティが保存、削除されるたびに更新される。 belongsTo アソシエーションにしか効かない。 class CommentsTable extends Table { public function initialize(array $config) { $this->addBehavior('CounterC…

ビヘイビア

ビヘイビアとはテーブルに追加できる便利部品 以下を参照した。 ビヘイビアー - 3.x ビヘイビアをテーブルに追加 amespace App\Model\Table; use Cake\ORM\Table; class HogesTable extends Table { public function initialize(array $config) { $this->add…

コンポーネント

コントローラで使える部品。 以下を参照した。 設定が必要なコンポーネントを使う際の設定 class HogesController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('Auth', [ 'authorize' => 'Controll…

コンポーネント

コントローラで使える部品。 設定が必要なコンポーネントを使う際の設定 class HogesController extends AppController { public function initialize() { parent::initialize(); $this->loadComponent('Auth', [ 'authorize' => 'Controller', 'loginAction…

イベントシステム

これは イベントシステム - 3.x の勉強メモである。 オブザーバーパターンの利用 イベントオブジェクトはすべてのリスナーに行き渡る。 そしてすべてのビュー、コントローラ、テーブルで $events = $this->eventManager(); がある。。各モデルは独立したイベ…

View

以下を参照して勉強したメモ ビュー - 3.x 役割 HTML, XML, JSON, PDF生成等 XMLとJSONビューは JSON と XML ビュー - 3.x AppView アプリのベースのView 主にヘルパーを読み込むように使用する。 loadHelper('MyUtils'); } } テンプレート ctp 両者は同じ意…

HelloWorld 3回目

モデルと Helloコントローラ loadModel('Hoges'); // echo "hello world!!"; //src/Template/Layout/de…

CakePHPの勉強のまとめ

勉強ログの記事一覧 CakePHP rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenadiary.jp rodhos.hatenad…

FaceBookPHP

以下を参照した。 Facebook PHPをComposerで利用するには | hrendoh's memo comporser.jsonのrequireにfacebook/php-sdkを追加 curl -s http://getcomposer.org/installer | php でcomposer.pharを落として php composer.phar install 警告が出た。 Warning:…

MySQLのエラー

General error: 1298 Unknown or incorrect time zone: 'Asia/Tokyo' というエラーが出て接続できなかった。以下などを参考に次の対応を行った。 3u3.org MAMP内のMAMP/Library/binにおいて ./mysql_tzinfo_to_sql /usr/share/zoneinfo > hoge.txt hogeに吐…