• Composer - запуск скрипта

    Если вы хотите запустить скрипт, который находится в папке vendor - вы можете воспользоваться параметром exec

    # например, если мы хотим вызвать phpunit, можно вместо 
    #$ php vendor/phpunit/phpunit/phpunit MyTest.php # вызвать $ composer exec phpunit MyTest.php

    22 марта 2017 г.     0     2419     Костя Анисимов         Composer, PHP    

    Подробнее...
  • Yii2 миграции + автоматическое создание файла модели

    Если надоело постоянно, после выполнении миграции, вызывать gii и создавать файл модели, можно автоматизировать этот процесс, для этого в файле миграции добавляем строку кода:

    public function up()
    {
        $myNewTable = "my_new_table_name";        
    
        $this->createTable("{{%$myNewTable}}", [
            "id" => $this->primaryKey(),
            "name" => $this->string(255),
            "about" => $this->text()
        ]);
        
        /**
         Создаем файл модели
         К примеру, если у нас используется архитектура advanced и мы хотим создать файл модели в каталоге common       
        */
        Yii::$app->runAction("gii/model", ["tableName"=>"$myNewTable", "modelClass"=>"MyNewTable", "ns"=>"\\common\\models"]);
    }

    14 марта 2017 г.     0     2713     Костя Анисимов         Yii Framework 2, yii2    

    Подробнее...
  • Java. Как выбрать случайный элемент массива

    Простой пример выбора случайного элемента массива в Java:

    String[] myString = new String[]{"раз", "два", "три", "четыре", "пять"};
    int n = (int)Math.floor(Math.random() * myString.length);
    System.out.println(myString[n]);
    

    13 марта 2017 г.     0     12134     Yehor Rykhnov         java    

    Подробнее...
  • Android. Как получит и установить размер текста элемента

    Для того чтобы получить размер текста используется метод getTextSize():

    TextView myTextView;
    float textSize;
    myTextView = (TextView) findViewById(R.id.myTextView);
    textSize = myTextView.getTextSize();
    

    Для установки размера текста используется метод setTextSize(int unit, float size) или setTextSize(float size):

    TextView myTextView;
    myTextView = (TextView) findViewById(R.id.myTextView);
    myTextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30); //30 px
    

    unit - единицы измерения отступа. Доступные значения:

    • TypedValue.COMPLEX_UNIT_PX - Pixels
    • TypedValue.COMPLEX_UNIT_SP - Scaled Pixels
    • TypedValue.COMPLEX_UNIT_DIP - Device Independent Pixels

    Или без указания unit (по умолчанию будет задан sp):

    TextView myTextView;
    myTextView = (TextView) findViewById(R.id.myTextView);
    myTextView.setTextSize(30); //30 sp
    

    10 марта 2017 г.     0     1015     Yehor Rykhnov         android, java    

    Подробнее...
  • Java. Конструкция switch case

    Конструкция switch case в Java не отличается от других языков программирования:

    switch(выражениеДляСравнения) {
        case совпадение1: 
            //необходимый код;
            break;
        case совпадение2: 
            //необходимый код;
            break;
        case совпадение3: 
            //необходимый код;
                break;
        default: 
            //код при условии что ни одно совпадение не сработало;
            break;
    }
    

    Простой пример switch case:

    int myValue = 3;
    
    switch (myValue) {
        case 1:
        System.out.println("Один");
            break;
        case 2:
        System.out.println("Два");
            break;
        case 3:
        System.out.println("Три"); //сработает условие
            break;
        default:
            System.out.println("Похоже что не один, два и три:)");
        break;
    }
    

    Еще пример switch case:

    int myValue = 7;
    
    switch (myValue) {
        case 1:
        System.out.println("Один");
            break;
        case 2:
        case 3:
        System.out.println("Два или три");
            break;
        case 7:
        case 8:
        System.out.println("Семь или восемь"); //сработает условие
            break;
        default:
            System.out.println("Похоже что не один, два, три, семь и восемь:)");
        break;
    }
    

    9 марта 2017 г.     0     1673     Yehor Rykhnov         Yii Framework, config    

    Подробнее...
  • Сomposer, очистка кэша

    Для очистки кэша в Сomposer достаточно выполнить одну команду в терминале:

    composer clearcache
    

    Или очистите кэш для нескольких пакетов:

    composer clearcache packagename1 packagename2 ... packagenameN
    

    8 января 2017 г.     0     4213     Yehor Rykhnov         Composer    

    Подробнее...
  • Yii framework, SELECT COUNT DISTINCT

    Простой пример получения количества уникальных записей столбца с условием:

    $model = ModelName::model()
        ->count(array('select' => 'count(distinct t.field_name)', 'condition' => ''));
    

    30 декабря 2016 г.     0     2222     Анатолий Громов         Yii Framework, MySQL, Active Record    

    Подробнее...
  • MySQL, сортировка выборки в заданном порядке

    SELECT * 
    FROM  `table_name` 
    WHERE column_name
    IN (value1, value10, value3, value2, value5, value4) 
    ORDER BY FIELD(column_name, value1, value10, value3, value2, value5, value4)
    

    Например нам нужно получить записи которые имеют id: 10, 5, 4, 2, 9, 1 именно в указанном порядке:

    SELECT * 
    FROM  `users` 
    WHERE id
    IN (10, 5, 4, 2, 9, 1) 
    ORDER BY FIELD(id, 10, 5, 4, 2, 9, 1)
    

    25 декабря 2016 г.     0     1124     Анатолий Громов         MySQL    

    Подробнее...
  • Yii framework, установка на OpenServer в Windows

    Создаем папку для проекта в OpenServer (/OpenServer/domains/new.site.local).Скачиваем yii www.yiiframework.com/download/#yii1. Распаковываем из архива папку farmework в ранее созданную папку.

    Открываем консоль OpenServer'а и переходим к проекту в папку framework (1) и выполняем установку (2):

    cd domains/new.site.local/framework
    yiic webapp ../
    

    16 декабря 2016 г.     0     3673     кодер.укр         Yii Framework, Install, OpenServer    

    Подробнее...
  • Исправляеем работу горячих клавиш на кирилической (русской) раскладке в phpStorm на Ubuntu

    Не работают горячие клавиши на кириллической (русской, украинской, ...) раскладке в phpStorm на Ubuntu? Например не работают сочетания клавиш Ctrl+C, Ctrl+V, Ctrl+A, Ctrl+X. Как ни странно, это давно известный баг, который никто не хочет исправлять.

    После поиска решения данной проблемы я нашел костыльное, но рабочее решение. И так исправляем работу горячих клавиш на кириллической раскладке в phpStorm на Ubuntu (проверено на phpStorm 2016.3 и Ubuntu 16.10).

    Чтобы решить эту задачу, необходимо закрыть PhpStorm. Скопировать решение из github репозитория. Это можно сделать несколькими способами.

    1) Открываем https://github.com/zheludkovm/LinuxJavaFixes, качаем zip файл (clone or download) и распаковываем его в папку /home/username/fix/

    Где username - имя пользователя.

    2) Или переходим в папку где будет храниться данный костыль фикс:

    cd ~/fix/
    

    И выполняем команду:

    git clone git@github.com:zheludkovm/LinuxJavaFixes.git
    

    Теперь открываем файл phpstorm64.vmoptions или phpstorm.vmoptions (если вы используете phpStorm x32), можно добавить в оба файла:

    gedit /opt/phpstorm/bin/phpstorm64.vmoptions
    

    Где /opt/phpstorm/ - путь к папке с phpStorm

    И добавляем в конец файла следующую строку:

    -javaagent:/home/username/fix/LinuxJavaFixes/build/LinuxJavaFixes-1.0.0-SNAPSHOT.jar
    

    Где /home/username/fix/ - путь к папке с фиксом.

    Сохраняем файл. Все, запускаем phpStorm и радуемся работой горячих клавиш кириллической (русской, украинской, ...) раскладке в phpStorm на Ubuntu.

    13 декабря 2016 г.     0     4441     Yehor Rykhnov         git    

    Подробнее...