• Что быстрее: file_get_contents к json файлу или запрос к бд?

    kotcich
    @kotcich Автор вопроса
    Я скучный.
    Крч, если коротко, то в задачах, где происходит частое обращение к бд(ну я лично так думаю, не бейте), выгоднее использовать json файл.
    Я использовал php функцию microtime, записывая в переменную ее значение вот так $time=microtime(true), первой строчкой в методе контроллера, далее выполнял код и самой последней строчкой ритернул return round(microtime(true) - $time, 4);, таким образом замеряя исполнение кода с округлением в 4 символа после запятой.
    Вот пример всего кода в метода:
    public function actionIndex()
        {
            $time = microtime(true);
    
            $user = User::findOne(['username' => 'www']);
            $user->username = 'www';
            $user->update();
    
            $json = json_decode(file_get_contents(__DIR__ ."/../../common/models/test.json"), true);
            $json['b'] = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            file_put_contents(__DIR__ . "/../../common/models/test.json", json_encode($json));
    
            return round(microtime(true) - $time, 4);
        }

    Как вы понимаете, либо обращение к бд, либо обращение к файлу было закомментировано. Ну и для чистоты эксперимента я не просто получал данные из бд или файла, но и делал какую то обработку, селектил и менял значение поля модели, а потом делал updated(), либо менял значение объекта по ключу в файле. Так же стоит заметить, что при работе с файлом я использовал json_encode() и json_decode(), так как в реальной задаче вам вряд ли будет нужный чистый json.

    Теперь к цифрам:
    Среднее значение занимаемого времени при работе с бд, это - 0.850, а вот время исполнения получения и перезаписи файла зависит от его объема. Я судил не по кб, а по кол-ву символов в файле, так как IDE показывает это. И дело в том, что json файл с 1 млн символов, запись с декодом, смена какого то значения и потом перезапись с инкодом занимает в среднем 0.100. Другими словами 1 млн === 0.100.
    Когда файл имел символов 200, то вся операция занимала в 100 процентах случаев 0.002.

    Будут вопросы, пишите.
    Ответ написан
    Комментировать
  • Чат + видео чат на laravel?

    kotcich
    @kotcich
    Я скучный.
    WebSocket загугли. Во фреймворках они обычно не реализованы стандартным функционалом, скорее всего нужно найти подходящее расширение на ваш фреймворк.
    Ответ написан
    Комментировать
  • Как выполнять auto login пользователя с подключенным BasicAuth?

    kotcich
    @kotcich Автор вопроса
    Я скучный.
    По итогу выяснил, что сервер не видит headers, если они были отправленные через обьект new Headers()
    , а когда я добавил headers вручную, вот так:
    headers: {
    'Authorization': 'Basic ' + btoa(username + ":" + password);
    },

    то сервер уже стал видеть отправленные данные.
    Ответ написан
    Комментировать
  • Почему не отправляется Bearer token на сервер через fetch?

    kotcich
    @kotcich Автор вопроса
    Я скучный.
    По итогу выяснил, что сервер не видит headers, если они были отправленные через обьект new Headers()
    , а когда я добавил headers вручную, вот так:
    headers:  {
                    'Authorization':  'Bearer ' + token
                },

    то сервер уже стал видеть отправленный токен.
    Ответ написан
    Комментировать
  • Как вставить гугл карту в разметку удаленно?

    kotcich
    @kotcich Автор вопроса
    Я скучный.
    Комментировать
  • Как передать метод из родительского компонента в дочерний?

    kotcich
    @kotcich Автор вопроса
    Я скучный.
    Крч, меня не особо поняли(написал я вроде все ясно), но решил сам.
    Проблема в том, что при v-bind:somecode в вашем представлении(если вы в фреймворке работает) или обычном index.php где у вас разметка при написании названия функции со скобками, вот такv-bind:ale=al() ваш код выполнится сразу по заходу на страницу и выполнится несколько раз, если он выполняется в v-for цикле.

    Исправить можно просто убрав () скобки в привязке метода и тогда все будет хорошо.
    Если же вам нужно будет передать параметры данной функции, то передать их нужно будет уже в коде компонента в js файле(там кавычки писать можно и передавать параметры тоже).

    Вот мой конечный код:

    Код из файла где будет ваша разметка
    <div id = 'app'>
            <app-com v-for = 'user in users' :user = 'user' :ale="al"></app-com>
    </div>


    И сам JS:
    Vue.component('app-com', {
        props: ['user', 'ale'],
        template: '<li>Имя: {{user.name}}, возраст: {{user.age}} ' +
            '<button v-on:click="ale(user.name)">Редактировать</button></li>',
    });
    
    let app = new Vue({
        el: '#app',
        data: {
            users: [
                {name: 'Артем', age: 20},
                {name: 'Андрей', age: 22},
            ],
            postFontSize: 1,
        },
        methods: {
            al: function(value) {alert(value)},
        },
    });
    Ответ написан
  • Phpinfo() выдает Configuration File (php.ini) Path "no value", в чем проблема?

    kotcich
    @kotcich Автор вопроса
    Я скучный.
    Решил, если у кого то будет подобная ошибка (так же проблема с подключением mysqli? может быть).

    У вас в папке с используемой версией php будет 2 файла php.ini (development/production), так вот оба эти файла (и это не интуитивно, для новичка может вызвать сложность), по факту имеют расширение не .ini, а .ini-development/production соответственно.
    То есть, вот эти названия через дефис по факту название расширения целиком. Php же нужен обычный .ini файл.

    Решение:
    Откройте .ini-development -> сохранить как -> название не меняйте -> в строке "тип файлы" выбрать ".Ini" (visual studio code почему то пишет его с большой буквы, не суть) -> сохраняете.

    По итогу у вас будет 3 файла, тот что вы только что сохранили(уже полноценный и он будет виден) и development/production файлы (их больше не трогайте). Теперь для внесения изменений (в настройки сессий например) открывайте именно настоящий .ini файл.
    Ответ написан
    Комментировать
  • Как изменить ссылку?

    kotcich
    @kotcich
    Я скучный.
    RewriteRule site.ru/(pay) site.ru/user/$1 [R]
    Ответ написан
  • MacOS или Windows для разработки игр что лучше?

    kotcich
    @kotcich
    Я скучный.
    С точки зрения удобства мак, а с точки зрения софта винда.
    У меня мак, и если нужно будет, я просто винду накачу на него и все, делов то)
    Ответ написан
    3 комментария
  • Как сделать так, чтобы при нажатии на play(F8) на клавиатуре imac открывался не itunes?

    kotcich
    @kotcich
    Я скучный.
    fn+F8
    fn самая нижняя левая клавиша. Она так же работает на все верхние клавиши, что удваивает возможности. так же можно в настройках клавиатуры поставить галочку на том, чтобы fn автоматически нажималась на всех верхних клавишах.
    Ответ написан
    Комментировать
  • Закончить ВУЗ по направлению "Разработка программного обеспечения" в 27 лет - это поздно?

    kotcich
    @kotcich
    Я скучный.
    Значит я не один такой (мне 20 и поступать буду в 22 года, коплю деньги и готовлюсь).
    Я считаю, что это нужно, все таки огромный фундамент знаний. Не просто же так в странах, где образование очень развито люди идут учиться даже в 30 и 33-35 заканчивают.
    Тут вопрос в другом, что это за учебное заведение, уверены ли вы в качестве преподавания(от этого многое зависит)? Ну и диплом (для технарей самое оно) для будущей миграции (если вдруг захотите) всегда не просто желателен, а должен быть.
    Ответ написан
    6 комментариев
  • Как выровнять блок?

    kotcich
    @kotcich
    Я скучный.
    relative для main-navigation
    position: absolute для ul
    ширину не давай ей 100% что бы список не растянулся под main-navigation
    absolute
    left: 50%;
    transform: translateX(-50%) (для того что бы исправить выравнивание, попробуй без трансформа посмотреть, поймешь о чем я)
    Ответ написан