Авторизация вообще простая
Нужно сюда передать модель с данными юзера и время для кукисов (если надо)
Yii::$app->user->login($user, $this->rememberMe ? 864000 : 0);Выход
Yii::$app->user->logout(); Авторизация вообще простая
Нужно сюда передать модель с данными юзера и время для кукисов (если надо)
Yii::$app->user->login($user, $this->rememberMe ? 864000 : 0);Yii::$app->user->logout(); # Rakovskiy (12.02.2015 / 00:47)Куча статики, завязок \Yii::$app. Слишком сильно загоняет в рамки. Не гибко. Да и вообще
А чё так?
пиши чтоб работало. рефакроринг еще ни кто не отменял
Rakovskiy, на твой пост (12.02.2015 / 00:56) отвечу, А если я делаю REST/RPC API, что мне делать тогда?
# reaper (12.02.2015 / 00:56)Ну, не знаю. Юзал когда-то зенд первый не понравился вообще, на то время пытался юзать Yii тож первый. Сейчас даже не вспомню, что там плохого и хорошего.
Куча статики, завязок \Yii::$app. Слишком сильно загоняет в рамки. Не гибко. Да и вообще
Нет, может там и есть какие-то хорошие идеи, но в целом он мне чем-то напоминает CI, Kohana и им подобны
Rakovskiy, Ну всё ещё впереди. Если не будешь стоять на месте и без всяких предрассудков посмотришь на другие фреймворки, есть большая вероятность, что потом будешь смотреть на него как на говно.
Кстати скоро Zend третий будет. Выглядит многообещающе. Больше всего привлекла реализация PSR-7.
имхо, для использования фв, и выбора между ними, нужен опыт в процедурном стиле, чтоб понимать процессы на самом простом уровне
# reaper (12.02.2015 / 01:00)Ой, честно сказать с REST ещё не сталкивался но видел, что в Yii2 много всего для этого есть, даже в поисках некоторых ман попадал на этот REST. Знаю, что там что-то с контроллерами мутить можно, ну типа наследовать от RestController и т.д.
Rakovskiy, на твой пост (12.02.2015 / 00:56) отвечу, А если я делаю REST/RPC API, что мне делать тогда?
# Koenig (12.02.2015 / 01:07)гГ кстати про опыт в процедурке. Буквально пол года назад я писал на ФВ так
имхо, для использования фв, и выбора между ними, нужен опыт в процедурном стиле, чтоб понимать процессы на самом простом уровне
<?php
class IndexController extends Controller{
public function actionIndex(){
View::head(array(
'title' => 'Оставить запрос',
'key' => 'Оставить запрос, связаться с Интеп, обратная связь, написать нам',
'des' => 'Обратная связь, оставить нам сообщение, напишите нам'
));
$form = new MessageFilesModel();
$text = null;
$error = array();
$value = array();
$value['fio'] = isset($_POST['fio']) ? Check::string($_POST['fio']) : '';
$value['email'] = isset($_POST['email']) ? Check::string($_POST['email']) : '';
$value['ext_email'] = isset($_POST['ext_email']) ? Check::string($_POST['ext_email']) : '';
$value['phone'] = isset($_POST['phone']) ? Check::string($_POST['phone']) : '';
$value['ext_phone'] = isset($_POST['ext_phone']) ? Check::string($_POST['ext_phone']) : '';
$value['text'] = isset($_POST['text']) ? Check::string($_POST['text']) : '';
if (isset($_POST['submit'])){
if (mb_strlen($value['fio']) < 3){
$error[] = 'Неверная длина ФИО';
}
if (!Check::email($value['email'])){
$error[] = 'Неверный формат e-mail';
}
if (mb_strlen($value['text']) < 5){
$error[] = 'Неверная длина описания';
}
if (!$error){
$message = new MessageModel();
$message->fio = $value['fio'];
$message->phone = $value['phone'];
$message->ext_phone = $value['ext_phone'];
$message->email = $value['email'];
$message->ext_email = $value['ext_email'];
$message->text = $value['text'];
$message->new = 1;
$message->time = Time::real();
$message->save(0);
//Загрузка файлов
$path = ROOT . 'files/message/' . $message->id . '/';
$error = $this->uploadFiles($form,$message->id);
if ($error){
$message->delete();
}else{
$contact = ContactsModel::model()->find();
if (isset($contact->mess_email)){
foreach (explode("\r\n",$contact->mess_email) as $email){
if (Check::email($email)){
$message = new YiiMailMessage;
$message->view = 'message';
$message->setBody($value,'text/html');
$message->addTo($email);
$message->from = Yii::app()->params['admin_email'];
Yii::app()->mail->send($message);
}
}
}
$text = 'Запрос отправлен';
}
}
}
$key = 'static_message';
if (!$info = Yii::app()->cacheFile->get($key)){
$info = StaticModel::model()->findByAttributes(array('page' => 'message'));
Yii::app()->cacheFile->set($key,$info);
}
$this->render('index',array('value' => $value,'error' => $error,'text' => $text,'info' => $info,'model' => $form));
View::foot();
}
public static function uploadFiles($model,$ref){
$error = array();
$path = ROOT . 'files/message/' . $ref . '/';
$files = CUploadedFile::getInstances($model, 'file');
if (!is_dir($path)){
mkdir($path);
if (is_dir($path)){
chmod ($path,0777);
}
}
if ($model->validate()){
foreach ($files as $file){
$name = uniqid() . '.' . $file->getExtensionName();
$file->saveAs($path . $name);
//Записываем в БД
$photo = new MessageFilesModel();
$photo->name = $name;
$photo->ip = Func::ip();
$photo->ua = Func::ua();
$photo->type = $file->getType();
$photo->time = Time::real();
$photo->ref = $ref;
$photo->save(0);
}
}else{
Func::deleteDir($path);
$error = $model->getErrors();
$error = $error['file'];
}
return $error;
}
}<div class="mainreq">
<div class="white">
<div class="hl"><h1>Оформление запроса</h1></div>
<?php if ($text){ ?>
<?php View::text($text . '</div>',true); ?>
<?php } ?>
<div class="alert alert-success" style="text-align: center;">
<?php echo $info->text; ?>
</div>
<form action="#" method="post" class="clearfix" id="message_form" enctype="multipart/form-data">
<?php if ($error){ ?>
<?php View::error($error); ?>
<?php } ?>
<div class="clearfix">
<div class="re1">
<div><span class="red">*</span> ФИО</div>
<input type="text" name="fio" value="<?php echo $value['fio']; ?>">
<div><span class="red">*</span> Почта:</div>
<input type="text" name="email" value="<?php echo $value['email']; ?>">
<div><span class="red">*</span> Телефон:</div>
<input type="text" name="phone" value="<?php echo $value['phone']; ?>" placeholder="+375 XX XXXXXXX">
<div>Дополнительный телефон:</div>
<input type="text" name="ext_phone" value="<?php echo $value['ext_phone']; ?>" placeholder="+375 XX XXXXXXX">
</div>
<div class="re2">
<div><span class="red">*</span> Краткое описание:</div>
<textarea name="text" id="message"><?php echo $value['text']; ?></textarea>
<div> Дополнительная почта:</div>
<input type="text"name="ext_email" value="<?php echo $value['ext_email']; ?>">
</div>
</div>
<?php View::formUpload($model,'Добавить файл'); ?>
<div class="submit"><input type="submit" name="submit" value="Отправить запрос"></div>
</form>
</div>
</div>
</div>