[5.6]concrete5のパッケージにLaravel5を組み込む
環境
- ディレクトリ構成は、CPI ACE01
- SSHではphpコマンドを打てないので、ローカルで諸々の環境を作ってからサーバー上で展開
- ローカルのPHPはphpenvで環境にあわせてバージョンを指定
└── html ├── blocks ├── concrete ├── config ├── controllers ├── css ├── elements ├── files ├── helpers ├── jobs ├── js ├── languages ├── libraries ├── mail ├── models ├── packages ├── packages │ └── example │ ├── controllers │ │ └── dashboard │ │ └── example │ │ └── sandbox │ ├── laravel │ └── single_pages │ └── dashboard │ └── example │ └── sandbox ├── page_types ├── single_pages ├── themes ├── tools └── updates
Laravel5の導入
composerインストール
- プロジェクトのルートディレクトリにcomposerをインストール
- ローカルで運用
> curl -sS https://getcomposer.org/installer | php
Laravel5のインストール
> php composer.phar create-project laravel/laravel html/packages/example/laravel --prefer-dist
composer.jsonにForm・HTMLヘルパーを追加
Upgrade Guide – Laravel – The PHP Framework For Web Artisans
"require": { "laravel/framework": "5.0.*", "laravelcollective/html": "~5.0" // 追加 },
Call to undefined method Illuminate\Foundation\Application::getCachedCompilePath()
先ほど追加したForm・HTMLヘルパーを入れるためにupdateを実行して上記エラーが出た場合の対処
> rm vendor/compiled.php > php composer.phar update
パッケージ内のコントローラーからLaravel5を読み込む
パッケージのパスを取得して、autoload.phpなどをrequireしていく
concrete5 :: Get the Package Path in a Dashboard Single Page Controller
<?php defined('C5_EXECUTE') or die("Access Denied."); use \App\User; class DashboardExampleSandboxController extends DashboardBaseController { public $helpers = array('html', 'form'); public $laravel; public function on_start() { parent::on_start(); $packagePath = Package::getByID($this->c->pkgID)->getPackagePath(); require $packagePath . '/laravel/bootstrap/autoload.php'; $this->laravel = require_once $packagePath . '/laravel/bootstrap/app.php'; } public function view() { // Laravel5標準の認証用ユーザーモデル $user = new User(); }
まとめ
強引な方法だけれども、Laravel5内のリソースにアクセスできた。Eloquentも普通に使えるはずなので検証を継続。
もっとスマートな方法があれば情報求む。
情報提供
パッケージコントローラーのon_start()で読み込むとスッキリだった。あとはPSR-0準拠として、Laravel側のnamespaceを置き換えれば良さそう
@calmtech ずれた回答かもしれませんが、パッケージコントローラーからPSRオートローダーを読み込む例です https://t.co/RiS834aCTb
— Takuro Hishikawa (@HissyNC) 2015, 4月 20
[concrete5.6] ローカルで作成したDesigner Content Proのブロックを本番へ移行する
2016年3月24日
cocrete5の強力なプラグイン、Designer Content Proで作成したブロックをローカルから本番環境へ移行するためのポイントを備忘録としてまとめました。
0 Comments1 Minute
[WordPress]寄稿者ユーザーに他者の投稿を表示させない方法
2015年4月9日
寄稿者ユーザーに他者の投稿を表示させない方法について備忘録としてまとめました。フィルターフックとアクションフックを併用して、管理画面の投稿一覧に関する表示制御を行っています。
2 Comments1 Minute
OSX Marvericks にアップデートしたら MAMP PRO が動かなくなった
2013年11月2日
OSX Marverics(以下、Marvericks)になって、便利な機能も増えましたが恒例のごとく「今まで動いていたものが動かない!」というケースも発生したりします。今回は、MAMP PROがそれになったので対処法をメモとして残しておきます。
0 Comments1 Minutes
Guard + Compass + Foundation で環境構築メモ
2013年7月5日
フロントエンド開発でもCUIベースでのビルドツールが充実してきています。RubyベースのGuardで複数のリソースを扱う方法についてメモをまとめました。
0 Comments1 Minutes
RubyでYoutube Data APIの認証、動画検索、取得、更新
2013年2月28日
RubyからGoogle Data APIを操作するバッチを書いていたので、おさらいです。APIとのやりとりを直接書いてみると、マッシュアップ系のWebサービスを作るときの基礎練習として良いですね。
0 Comments2 Minutes
HTTPでXMLを送信したら、The Processing Instruction Target Matching “[xX][mM][lL]” is Not Allowed
2013年2月27日
Rubyで次々とXML送信するバッチスクリプトを書いていたところ、Net::HTTP#putの利用時にステータス400。ふたを開けてみると、なんということはない内容でした。
0 Comments1 Minute
Sublime Text 2 + MAMP + Xdebug でPHPデバッグをする方法
2012年12月18日
Sublime Text 2(以下、ST2)がすっかりメインエディタに定着したのですが、デバッグ環境が未整理でした。そういえば・・・と思って探してみると、やはりプラグインがありました。ST2とMAMPによるPHPデバッグ環境の導入方法を解説します。
0 Comments1 Minutes
IE9でprototype.js + Shadowbox.jsを使う場合のメモ
2012年6月5日
IE9なら、モダンブラウザに近づくから面倒なIE対応は減るはず、というのは幻想で余計に手間が増えるケースもあります。今回は限定されたシチュエーションですが、JavaScriptライブラリを使う場合の対応をまとめました。
0 Comments1 Minute
[FuelPHP] taskでRailsライクなseedを作る
2012年2月22日
FuelPHPを使い始めているのですが、良いと評価できる点にコマンドラインから実行できる便利なタスクがあります。Railsではrake, railsというコマンドで各種タスクを実行でき、それを踏襲しています。今回はその中でも初期データ作成に便利なseedという機能をFuelPHP上に作ってみました。
0 Comments1 Minute