from django import template
from django.utils.html import conditional_escape
from django.utils.safestring import mark_safe
register = template.Library()
@register.filter(needs_autoescape=True)
def initial_letter_filter(text, autoescape=True):
first, other = text[0], text[1:]
if autoescape:
esc = conditional_escape
else:
esc = lambda x: x
result = '<strong>%s</strong>%s' % (esc(first), esc(other))
return mark_safe(result)
# остальные импорты опущены
from django.conf import settings
class Article(models.Model):
...
added_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True,
related_name="articles_added")
last_edited_by = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True, null=True,
related_name="articles_edited")
...
from django.contrib import admin
from .models import Article
class ArticleAdmin(admin.ModelAdmin):
readonly_fields = ("last_edited_by",) # делаем полем рид онли, чтобы нельзя было его отредактировать
def save_model(self, request, obj, form, change):
if change: # True если изменяется уже существующий объект, False если добавляется новый
# определяем и записываем пользователя если изменяется существующий объект
obj.last_edited_by = request.user
else:
# определяем и записываем пользователя если добавляется новый объект
obj.added_by = request.user
super(ArticleAdmin, self).save_model(request, obj, form, change)
admin.site.register(Article, ArticleAdmin)
<?= Html::a('Название раздела', ['billing/view', 'client_id' => $clientId], ['class' => 'list-group-item' . (Yii::$app->request->pathInfo == 'billing/view' ? ' active' : '')]) ?>
$this->context instanceof \admin\controllers\DeviceController ? ' active' : ''
Возможно ли изучить PHP-фреймворк параллельно разрабатывая на нём проект?Честно говоря, не представляю, как ещё по другому можно изучать фреймворк, в т.ч. PHP.
плюс ко всему проект должен быть приспособлен к highload.Тогда с выбором фреймворка, нужно быть поосторожнее. "Не все фломастеры одинаково вкусные".
микросервисы, которые обходились без больших фреймворков даже при основательных нагрузкахЧистый PHP-код, работает быстрее чем любой фреймворк. Я имею в виду, грамотно написанный PHP-код, т.к. в нем отсутствует "лишняя" логика.
Хочу использовать для разработки фреймворк Yii2. В чём вопрос: смогу ли я параллельно его изучая приступить к разработкеСкорее всего да, хотя это очень индивидуально.
и так, чтобы потом 10 раз не пришлось переделывать?Скорее всего нет, хотя это тоже очень индивидуально.
Может, изучить какой-нибудь микрофреймворк?Возможно. Зависит от Ваших задач и целей.
Понятное дело, что без правильно настроенного содержимого моей черепной коробки даже с 10-ти летним опытом в Yii не получится, но всё же, поделитесь опытом и дайте совет :)Ну я обычно с новичками, изучение с CodeIgniter'а начинаю, т.к. он не изобилует всеми новыми фишками и плюшками, и в виду отсутствия таких, казалось бы, ставшими уже стандартом вещей, как например "авторизация" - заставляет их включать голову, а не истерично рыться в поисковике на тему "как включить готовую авторизацию", но мне не редко приходиться работать с людьми, которые не очень хорошо разбираются в PHP, Фреймворках и программировании в целом или веб-разработке в целом. Не многие сходу знают, что такое MVC и так далее, а пытаться объяснить человеку, что такое класс и тут же нагружать его "пространствами имён" или "внедрением зависимостей" (и всем остальным) - не очень продуктивно (как показывает практика). Когда у обучаемого 10 лет опыта за спиной, можно сразу с Laravel/Symfony начинать, как минимум, что такое MVC и всё остальное - объяснять редко приходится, скорее, приходится показывать, "как это сделать тут", а "как надо делать вообще" - обучаемый уже и без меня отлично знает.
1) С# или Visual C#?
2) Что такое платформа .NET Framework?
3) Недавно прочитал про .NET CORE.
Как связанны backend+RESTful API+Базы данных?
Но приложения на андроид пишутся на Java.Не только на Java... Но, это не имеет значения как такового, на чем они пишутся на клиенте.
Получается, что если за основу сайта я взял Django, то и на мобильном приложении будет основа DjangoНа мобильном приложении, с вероятностью 99% будет клиент. На чем он будет написан - значения не имеет особого, но Django в андроиде - очень вряд ли.
Какую роль играет при этом сервер?Роль сервера, судя по всему.
И да, последний вопрос: какие темы/аспекты нужно выучить, чтоб разбираться в этом?Конкретно про REST - я привёл Вам ссылку выше. Так же рекомендую ознакомиться со спецификацией на HTTP-протокол, полезно и в качестве примера для Вашего вопроса и вообще в целом.
Шаблонизаторы типа Smarty, Twig в 2017 востребованы, если с ними раньше не работал стоит ли смотреть, изучать что бы повысить ценность свою на рынке труда?
Или их нативный php всё же их вытеснилИз тех шаблонизаторов, что я могу вспомнить, по моему, все "компилируются" (преобразуются) в нативный для системы код (даже Smarty), т.е. если мы говорим про PHP - то соотв. в PHP-код. Парсится шаблон в код не часто и разница в производительности довольно не значительная, в 99% случаев - ей можно принебречь.
или все ушли во Фронтенд шаблонизаторы?
/*
список новостей
*/
class ListNews extends ListView {}
/*
список топовых новостей
*/
class ListTopNews extends ListNews
{
public function init()
{
// создаете провайдер с топовыми новостями
$this->dataProvider = new ActiveDataProvider(...);
parent::init();
}
}
ArrayHelper::getValue($array, 'foo.bar.name');
use common\components\MyClassName;
//...
$api = new MyClassName($someConfig);
//это стандарный
'urlManager' => [
'class' => 'yii\web\urlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [],
],
//это второй
'urlManagerBack' => [
'class' => 'yii\web\urlManager',
'baseUrl' => 'http://mybackenddomain.com',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => require(__DIR__ . '/../../backend/config/routes.php'), //тут путь к файлу с rules для backend
],
Yii::$app->urlManagerBack->createAbsoluteUrl('/'); //ссылка на главную
Yii::$app->urlManagerBack->createUrl(['site/about']); //Ваш пример
MyModel::find()->where(['not' in, 'key_field', 'site']);