Сообщения

Сообщения за 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' =&g

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

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/credentials var 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

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-

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]); } return new 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' ,

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/pat

Автоматический вход пользователя на сервер посредством 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".) Открываем

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

<?php function closestNum ($arr,$num){ $tmp = array (); foreach ($arr as $val){ $tmp[$val] = abs ($val - $num); } asort ($tmp); return key ($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+>' =

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

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

Yii 1 ипсользование Active Record в сторонних файлах

<?php header ( "Content-Type: text/html; charset=utf-8" ); ?> <!DOCTYPE html> <html> <head> <?php $yii = dirname ( __FILE__ ) . '/yii_excel/vendor/yiisoft/yii/framework/yii.php' ; require_once ( $yii ); $yiiConfig = require ( __DIR__ . '/yii_excel/protected/config/main.php' ); Yii :: createWebApplication( $yiiConfig ); $criteria = new CDbCriteria ; //Рекурсивно выбираем потомков $connection = Yii :: app() -> db; $sql = " select now() " ; //http://www.yiiframework.com/doc/guide/1.1/ru/database.dao $dataReader = $connection -> createCommand( $sql ) -> queryScalar(); echo '<pre>' ; var_dump ( $dataReader ); $dataReader = $connection -> createCommand( $sql ) -> query(); $rows = $dataReader -> readAll

Soap сервис при помощи NuSoap

server.php <?php require_once ( '/var/www/libs/soap/nusoap.php' ); $server = new nusoap_server ; $server -> soap_defencoding = 'utf-8' ; $server -> decode_utf8 = false ; $server -> configureWSDL( 'server' , 'urn:server' ); $server -> wsdl -> schemaTargetNamespace = 'urn:server' ; $namesCol = array ( 'orderNumber' => 'Номер заказа' , 'id' => 'ID' , 'execNumber' => 'Номер исполнителя' , 'deliveryDate' => 'Дата доставки' , 'deliveryStart' => 'Начало интервала доставки' , 'deliveryEnd' => 'Конец интервала доставки' , 'region' => 'Регион' , 'city' => 'Город' , 'index' => 'Индекс' , 'street' => 'Улица' , 'house' => 'Дом' , 'apartment'