phalconのチュートリアルを学習してみます。
こちらを元に勉強しました。
phalconチュートリアル-Vokuro編-
macでxamppの上に置いてやっています
githubからクローンする
ターミナルでhtdocsがあるところまでいってください。そしてクローンします。
僕は、macでxamppの上に置きたいので、このようなコードになります
cd /Applications/XAMPP/xamppfiles/htdocs
git clone https://github.com/phalcon/vokuro.git
すると、テンプレが出来上がりました。
次にvokuroに移動して、composerをインストールします
そのあとに、composer installをすればいいらしい
cd vokuro
curl -sS -k https://getcomposer.org/installer | php
composer install
チュートリアル通りにするとエラーに・・・解決策見つけた!!
チュートリアルでは、これにアクセスせよと書かれていますが・・・
http://localhost/vokuro
エラーが出ました。
Warning: Phalcon\Mvc\View\Engine\Volt\Compiler::compileFile
でも、解決策見つけましたよ。
エラーに、index.php on line 41がどうのこうの書いてましたけど、そんなん関係ない!!!
cacheフォルダにアクセス権がないためにエラーが発生しているらしいです。
解決策はこれ
ターミナルで以下のコマンドを打ってください
chmod -R 777のあとは、cacheまでのパスを書いてくださいね。
chmod -R 777 /Applications/XAMPP/xamppfiles/htdocs/vokuro/cache
これで、cacheのアクセス権限はクリア!
もう一度見てみると、いけてました!よかった!
あとはカリキュラム通り
Vökuróは、Swiftという言語を使って、登録ユーザーのサインアップを確認するための電子メールを送信しているそう。
sends emails to confirm the sign up of registered users using Swift
composer.jsonはこうなるそうです。
実際に見たら、若干違うけど、ほとんど同じ。
{
"require" : {
"php" : ">=5.5.0",
"ext-phalcon" : ">=3.0.0",
"swiftmailer/swiftmailer" : "^5.4",
"amazonwebservices/aws-sdk-for-php" : "~1.0"
}
}
app / config / loader.phpには、最後に自動読み込み用の設定があるそう。
うん、確かにあった。
<?php
// ...
// Use composer autoloader to load vendor classes
require_once BASE_PATH . "/vendor/autoload.php";
VökuróはINVOとは違って、コントローラとモデルに名前空間を使っているそう。
ちょっと初心者の僕には理解できない・・・どういうことなんだろう、どういう違いがあるんだろう。
<?php
use Phalcon\Loader;
$loader = new Loader();
$loader->registerNamespaces(
[
"Vokuro\\Models" => $config->application->modelsDir,
"Vokuro\\Controllers" => $config->application->controllersDir,
"Vokuro\\Forms" => $config->application->formsDir,
"Vokuro" => $config->application->libraryDir,
]
);
$loader->register();
// ...
registerDirectories()を使う代わりに、registerNamespaces()を使うらしい
全ての名前空間?はapp / config / config.phpで定義されたディレクトリを指すらしい。
例えば、Vokuro\Controllersはapp/controllersを指すらしい。
でも、config.phpにそんな記述ないぞ・・・?
まあいっか、
<?php
namespace Vokuro\Controllers;
class AboutController extends ControllerBase
{
// ...
}
create an accountをクリックしたら、エラーが出ました。
(未解決ですが一旦終わります・・・)