Сообщения

Сообщения за 2017

Оптимизация запросов yii2

Изображение
проект https://gitlab.com/des1roer/yii2pet

пусть view views/pers/index.php


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31<?= GridView::widget([ 'dataProvider'=>$dataProvider, 'columns'=> [ 'name', 'lvl', 'money', [ 'attribute'=>'race_id', 'format'=>'raw', 'label'=>'раса', 'filter'=>$races, 'value'=>'race.name' ], [ 'label'=>'Изображение', 'format'=>'html', 'value'=>function ($data) { return Html::img($data->race->img, ['width'=>'100']); }, ], [ &#…

Авторизация через Гугл аккаунт

https://console.developers.google.com/apis/credentials

----------------
<script async defer src="https://apis.google.com/js/api.js"      onload="this.onload=function(){};handleClientLoad()"      onreadystatechange="if (this.readyState === 'complete') this.onload()"></script>?>
----------- // Enter an API key from the Google API Console:// https://console.developers.google.com/apis/credentialsvar apiKey ='**********';// Enter the API Discovery Docs that describes the APIs you want to// access. In this example, we are accessing the People API, so we load// Discovery Doc found here: https://developers.google.com/people/api/rest/var discoveryDocs =["https://people.googleapis.com/$discovery/rest?version=v1"];// Enter a client ID for a web application from the Google API Console:// https://console.developers.google.com/apis/credentials?project=_// In your API Console project, add a JavaScript origin that corresponds//…

Yii2 апгрейдим функции

просто установим

composer require illuminate/support

и можно использовать https://laravel.com/docs/5.5/helpers#introduction

Обновить sublime_text в Ubuntu

Скачиваем последнюю версию https://www.sublimetext.com/3
Распаковываем
Выполняем sudo cp -rf sublime_text_3/. /opt/sublime_text


https://askubuntu.com/questions/828226/how-to-update-sublime-text-3-in-ubuntu-16-04/829022

Кастомный дампер для Yii2

Изображение
/** * Debug function * d($var); * @param $var * @param null $caller */ function d($var,$caller=null) { if(!isset($caller)){ $tmp_var=debug_backtrace(1); $caller=array_shift($tmp_var); } header('Content-Type: text/html; charset=utf-8'); echo'<code>File: '.$caller['file'].' / Line: '.$caller['line'].'</code>'; echo'<pre>'; VarDumper::dump($var, 10, true); echo'</pre>'; } /** * Debug function with die() after * dd($var); * @param $var */ function dd2($var) { $tmp_var=debug_backtrace(1); $caller=array_shift($tmp_var); $this->d($var,$caller); die(); } https://github.com/samdark/yii2-cookbook/blob/master/book/structure-global-functions.md

для phpstorm



\yii\helpers\VarDumper::dump( $END$ , 10, true);die();

Yii2 custom action Rest Api

Свой экшен в АПИ


--------
<?php namespace app\modules\api\modules\v1\controllers; use app\models\Unit; use yii\data\ActiveDataProvider; /** * Class UnitController * @link http://yii2game/api/unit */ class UnitController extends RestController { public $modelClass = Unit::class; public function actionCustom(?int $id = null): ActiveDataProvider { $query = Unit::find(); if ($id) { $query->andWhere(['id'=> $id]); } returnnew ActiveDataProvider([ 'query'=> $query, ]); } } --------

по пути http://yii2game/api/unit/custom/?id=44

все работает https://gitlab.com/des1roer/yii2game
 https://drive.google.com/drive/folders/0B8SBzylZ-emOflNtV3lURWtTQnBpTE5YS1hvNFBvS1lWT3oyTjZJbk4yNzNSWkZqNVdHNmM


Linux golang install

sudo apt install golang-go

Yii2 Rest Api

Изображение
Инфо http://developer.uz/blog/restful-api-in-yii2/

Исходники
https://github.com/des1roer/yii2test



На самом деле сложности никакой нет

Что нужно запомнить - в rules апи прописывается сверху


В config/web.php
========
<? 'urlManager'=> [ // Disable index.php'showScriptName'=>false, 'enableStrictParsing'=>true, // Disable r= routes'enablePrettyUrl'=>true, 'rules'=>array( ['class'=>'yii\rest\UrlRule', 'controller'=> ['api/v1/unit'], 'pluralize'=>false], ['class'=>'yii\rest\UrlRule', 'controller'=> ['api_v1/unit'], 'pluralize'=>false], '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<ac…

Yii2 Прототипирование бд со скоростью мысли

Изображение
Хочу представить возможность быстрого создания миграций для БД

Пусть будет 2 бд - одна для разработки средствами визуальных IDE, вторая рабочая

Соответственно два подключения




Используя https://github.com/tmukherjee13/yii2-reverse-migration
можно получить миграции из БД

yii migration/table user_pers --db=db_dev

И затем применить их на боевой

yii migration/up

Вот собственно и все

https://gitlab.com/des1roer/yii2game

Создание всех моделей

yii gii/model --tableName=*

https://github.com/des1roer/yii2generate

Yii 1 gii console

в консоли

F:\OpenServer\domains\yii\protected\yiic shell

module newModule

exit - указыавем модуль в конфиге

F:\OpenServer\domains\yii\protected\yiic shell

model newModule.models.User2 tbl_user

crud admin.models.User2

-------------------------------------------------------------------------------------------

des@DESKTOP-9BLCHD7 F:\OpenServer\domains\yii
$ F:\OpenServer\domains\yii\protected\yiic shell
Yii Interactive Tool v1.1 (based on Yii v1.1.17)
Please type 'help' for help. Type 'exit' to quit.
>> crud newModule.models.User2
   generate User2Controller.php
  unchanged User2Test.php
      mkdir F:/OpenServer/domains/yii/protected/modules/newModule/views/user2
   generate create.php
   generate update.php
   generate index.php
   generate view.php
   generate admin.php
   generate _form.php
   generate _view.php
   generate _search.php

Crud 'user2' has been successfully created. You may access it via:
http://hostname/path/to/index.php?r=newModule/user2

Автоматический вход пользователя на сервер посредством putty (протокол SSH)

Задача: полностью автоматизировать вход пользователя на сервер посредством putty (протокол SSH). Порядок действий: Автологин с помощью ключей Сгенерировать ключ на сервере:ssh-keygen -t rsaСохраняем ключ в предлагаемый файл (/home/myuser/.ssh/id_rsa)При необходимости указываем пароль на использование приватного ключа (в этом случае его необходимо будет вводить при каждой новой сесии)Копируем публичный ключid_rsa.pubвauthorized_keys(cp id_rsa.pub authorized_keys)Проверить права на файл. Должны быть 600, иначе может не сработать (chmod 600 authorized_keys).Копируем приватный ключ id_rsa (more id_rsa) в файл на локальном комьютере (например my_session.ppk)Прогоняем скопированный приватный ключ черезputtygen.exeделая приватный ключ пригодным к использованию. (Там есть кнопочка "Load", напротив надписи"Load an existing private key file", юзаем сначала ее, а затем теребим баттон "Save private key".)ОткрываемPutty, загружаем нашу сессию, идем вSSH->Auth, указы…

PHP ближайшее число из массива

<?php functionclosestNum($arr,$num){ $tmp =array(); foreach($arr as $val){ $tmp[$val] =abs($val - $num); } asort($tmp); returnkey($tmp); }

Yii создание api для загрузки данных

1. в приложении нужно сделать чпу

\yii\protected\config\main.php

//////
<? 'urlManager'=>array( 'urlFormat'=>'path', 'showScriptName'=>false, 'rules'=>array( // стандартное правило для обработки '/' как 'site/index'''=>'site/index', // это пример добавления который заработал//'secondcontroller/<action:.*>'=>'secondcontroller/<action>','user/<action:.*>'=>'user/<action>', //'<action:.*>'=>'site/<action>', //закомментил а то глючило с ним'<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>…

Если пишет что порт 80 занят

Запускаете Regedit и идете по адресу 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
и меняете значение Start на 0. Рестарт.

ROR on Windows

Изображение
1. Скачайте railsinstaller c

http://railsinstaller.org/ru-RU

2. Дальнейшая установка с помощью консоли

советую https://sourceforge.net/projects/conemu/

3. Проверяем версию руби

> ruby -v
ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]

4. Для корректной работы rails нужно изменить содердимое

\RailsInstaller\Ruby2.3.0\bin\rails.bat

@ECHO OFF
IF NOT "%~f0" == "~f0" GOTO :WinNT
ECHO.This version of Ruby has not been built with support for Windows 95/98/Me.
GOTO :EOF
:WinNT
@"%~dp0ruby.exe" "%~dpn0" %*

такой же код добавьте в rake.bat и bundle.bat

> rails -v
Rails 5.0.1

5. Чтобы корректно работал сайт - нужны изменения

\app\views\layouts\application.html.erb

<!DOCTYPE html>
<html>
  <head>
    <title>NetzkeTaskManager</title>
    <%= csrf_meta_tags %>

    <%= stylesheet_link_tag    'application.css', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascr…