以下是我的索引文件的代码,该文件位于根目录中:
<?php
require 'vendor/autoload.php';
date_default_timezone_set('Asia/Seoul');
//$log = new Monolog\Logger('name');
//$log->pushHandler(new Monolog\Handler\StreamHandler('app.txt', Monolog\Logger::WARNING));
//$log->addWarning('Oh Noes.');
$app = new \Slim\Slim( array(
'view' => new \Slim\Views\Twig()
));
$app->add(new \Slim\Middleware\SessionCookie());
$view = $app->view();
$view->parserOptions = array(
'debug' => true
);
$view->parserExtensions = array(
new \Slim\Views\TwigExtension(),
);
//Path To Our View
$app->view->setTemplatesDirectory("app/view");
// Configs for mode "production"
$app->configureMode('production', function () use ($app) {
// Set the configs for production environment
$app->config(array(
'debug' => false,
'database' => array(
'db_host' => 'localhost',
'db_port' => '',
'db_name' => 'mini',
'db_user' => 'root',
'db_pass' => 'yaounde'
)
));
});
/******************************************** THE MODEL ********************************************************/
// Initialize the model, pass the database configs. $model can now perform all methods from Mini\model\model.php
$model = new \app\Model\Model($app->config('database'));
/************************************ THE ROUTES / CONTROLLERS *************************************************/
$app->get('/', function() use($app){
$app->render('about.twig');
})->name('home');
$app->get('/contact', function() use($app){
$app->render('contact.twig');
})->name('contact');
$app->post('/contact', function() use($app){
$name = $app->request->post('name');
$email = $app->request->post('email');
$msg = $app->request->post('msg');
if(!empty($name) && !empty($email) && !empty($msg)) {
$cleanName = filter_var($name, FILTER_SANITIZE_STRING);
$cleanEmail = filter_var($email, FILTER_SANITIZE_EMAIL);
$cleanMsg = filter_var($msg, FILTER_SANITIZE_STRING);
} else {
$app->flash('fail', 'All Fields Are Required.');
$app->redirect('contact');
}
$transport = Swift_MailTransport::newInstance();
$mailer = \Swift_Mailer::newInstance($transport);
$message = \Swift_Message::newInstance();
$message->setSubject('Simple Blog Contact Form Submission');
$message->setFrom(array(
$cleanEmail => $cleanName
));
$message->setTo(array('admin@localhost'));
$message->setBody($cleanMsg);
$result = $mailer->send($message);
if($result > 0) {
$app->flash('success', 'Thanks So Much! You are AWESOME!!!');
$app->redirect('contact');
} else {
$app->flash('fail', 'So Sorry, Something Went Wrong. Please Try Again!');
// log that there was an error
$app->redirect('/contact');
}
});
$app->run();
然后,我在文件夹Model.php
app\Model\Model.php
<?php
namespace app\Model;
use PDO;
class Model
{
function __construct($config)
{
}
}
我收到此错误:
致命错误:第43行的E:\ xampp \ htdocs \ aaaaaslim \ index.php中找不到类'app \ Model \ Model'
答案 0 :(得分:9)
您可以使用Composer
加载自己的命名空间。
只需将以下内容添加到composer.json
。
"autoload": {
"psr-4": {
"app\\": "app/"
}
}
当你进行作曲家更新时,自动加载会知道你的命名空间app
,并且无需手动导入即可包含你的类。