Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
mcmraak

Александр Аблизин

php+sql+js+bicycle+crutches
  • 24
    вклад
  • 14
    вопросов
  • 45
    ответов
  • 33%
    решений
Ответы
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Достижения
  • Как на основе Mysql базы сделать сайт-каталог?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    База данных, в своей сути, это просто таблицы с данными. Нельзя просто взять и на основании этих этих данных вывести бизнес-логику и представление с логикой интерфейса.
    У каждой CMS есть свои механизмы для работы с БД, и важны и нейминг и структура и то как организовано хранение данных (ключи, связи и т.д.).
    Короче готового решения нет и быть не может, если бы можно было с начала создать базу данных с любой архитектурой, а потом на основании этого сгенерировать бизнес-логику и интерфейсы (ну типа искуственный интеллект), то программисты бы уже давно были бы не нужны.
    Могу посоветовать OctoberCMS которая работает на Laravel и имеет плагин Builder который позволяет очень быстро собрать необходимый интерфейс и логику и подключаться к любым базам
    Ответ написан 27 окт. 2022
    Комментировать
    Комментировать
  • Как хранить код страниц в Laravel?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Я бы хранил в файлах, создайте в storage папку для хранения и создайте геттер и сеттер (или акцессор и мутатор, кому как нравиться) для модели. К примеру у вас есть модель App\Models\Page
    public function getCodeAttribute(): string
    {
        return file_get_contents(storage_path("pages/page_{$this->id}.html"));
    }
    public function setCodeAttribute(string $html_code): void
    {
        file_put_contents(storage_path("pages/page_{$this->id}.html"), $html_code);
    }

    Не забыть при удалении экземпляра модели удалить и файл, для этого используйте события модели.
    Ответ написан 24 окт. 2022
    Комментировать
    Комментировать
  • Считать ли опыт разработки под битрикс полноценным опытом в php?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Битрикс может вызвать отвращение к веб-разработке, его польза только в том чтобы потом ярче воспринимать Laravel/Symfony и инструменты на их основе. Всё потому что битриксоиды забили на стандарты и философию программирования напридумав кучу велосипедов из костылей и вылизав их до состояния production обложив рекламой и маркетингом. На западе про это знают, на них пиары 1С (OneAss) не особо действуют.
    Ответ написан более двух лет назад
    Комментировать
    Комментировать
  • Какую CMS порекомендуете для практики в PHP?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    OctoberCMS потому что:
    • Он основан на Laravel
    • Прост в изучении
    • Имеет конструктор плагинов
    • Красивый код, красивая админка

    Надеюсь после него не захочется даже думать о WP
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Вывод из базы данных mysql каждый элемент как массива Php+mysql?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Ну во первых: то что вы хотите сделать, очень похоже на денормализацию базы данных что не есть хорошо. Ну не мне судить я не знаю нюансов вашего случая.
    Во вторых это можно сделать на php так: Допустим что $items это коллекция (в виде обычного массива) записей вашей базы, тогда чтобы привести её к нужному вам виду нужно сделать что-то типа:
    $arr = [];
    foreach($items as $item) {
        $arr[$item['id_article']][] = $item['size'];
    }
    
    $result = [];
    foreach($arr as $key => $val) {
        $result[$key] = join(',',$val);
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как прижать footer?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Я для этого использую такой метод: В основе вёрстки два блока:
    HTML
    <body>
        <div id="Wrapper">
            Тут остальной сайт
        <div>
        <footer>
            Тут футер
        </footer>
    </body>

    CSS
    #Wrapper {
        display:inline-block;
        width: 100%;
        height: 100%;
        min-height: calc(100vh - 100px);
    }
    footer {
        height: 100px;
    }
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать значение не более 5?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    if($item_ok2 > 5) $item_ok2 = 5;
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • На какой CMS реализовать справочник организаций города?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Рекомендую OctoberCMS основанная на Laravel
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Какой linux ставить на слабый ноутбук?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Lubuntu 16.04 будет отлично работать!
    lubuntu.me/downloads
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как установить вордпресс и амембер в папки при установленном уже OctoberCMS?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    В OctoberCMS на уровне .htaccess запрещены все php-крипты кроме точки входа index.php и это правильно с точки зрения безопасности. Если всё же понадобилось открыть каталог для запросов, то это делается так:
    .htaccess
    ##
        ## White listed folders
        ##
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteCond %{REQUEST_FILENAME} !/.well-known/*
        RewriteCond %{REQUEST_FILENAME} !/storage/app/uploads/.*
        RewriteCond %{REQUEST_FILENAME} !/storage/app/media/.*
        RewriteCond %{REQUEST_FILENAME} !/storage/temp/public/.*
        RewriteCond %{REQUEST_FILENAME} !/themes/.*/(assets|resources)/.*
        RewriteCond %{REQUEST_FILENAME} !/plugins/.*/(assets|resources)/.*
        RewriteCond %{REQUEST_FILENAME} !/modules/.*/(assets|resources)/.*
        RewriteCond %{REQUEST_FILENAME} !/testfolder/.*
        RewriteRule !^index.php index.php [L,NC]
    
        ##
        ## Block all PHP files, except index
        ##
        RewriteCond %{REQUEST_FILENAME} -f
        RewriteCond %{REQUEST_FILENAME} \.php$
        RewriteCond %{REQUEST_FILENAME} !/testfolder/.*
        RewriteRule !^index.php index.php [L,NC]

    Тут мы добавили каталог /testfolder/ в список разрешённых для обращения к скриптам php, т.е. добавили строчку
    RewriteCond %{REQUEST_FILENAME} !/testfolder/.* в два места (смотреть выше)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Из JavaScript в PHP?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    $error_porl = strpos('id="error_porl"', $html);
    if($error_porl)
    {
        $html = str_replace('id="error_porl"', 'id="error_porl" style="display:block"', $html);
    }
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как лучше всего реализовать дополнительные поля?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Я тоже изучаю этот вопрос, и я пока что вижу, что самый оптимальный вариант реализации вот такой (типа инфоблоки в битриксе или информационные системы в HostCMS).

    Имеем следующие таблицы:
    1) Сами записи (id|...|category_id)
    2) Категории (вида id|parent_id|customfields_table)
    3) Набор кастомных полей для категории (id|custom_1|custom_2|...)
    4) Описание кастомных полей для таблицы кастомных полей (custom_{id}|type|name|slug|...)
    Как-то так, всё нормализовано и связано, в моём примере наборы кастомных полей привязываются к категориям, как в JBZoo или в HostCMS но в этом же стиле можно привязать их к иным сущностям, как инфоблоки в битриксе, но эти инфоблоки связаны так-же с категориями (ну дальше логика уже зависит от задач).

    Есть ли ещё какие-то соображения?
    P.S. А вопрос интересный и совсем не глупый.
    Ответ написан более трёх лет назад
    1 комментарий
    1 комментарий
  • Как определить пользователя на какой странице он Laravel 5.2?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Для определения на какой странице нужно вот тут читать: https://laravel.com/docs/5.2/routing
    В двух словах параметры роутов можно обрабатывать с помощью middleware, так-же есть именованные роуты и т.д. в общем куча вариантов и механизмов для этой задачи.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как сделать последовательное выполнение в данном случае?

    mcmraak
    Александр Аблизин @mcmraak Автор вопроса
    php+sql+js+bicycle+crutches
    В общем я всё понял, ошибку свою признал, буду сам допиливать потихонечку.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Нужны ли внешние ключи в БД при разработке на laravel?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    [ Внимание, это моё мнение не претендующее на best practices ] Одна из прелестей Laravel, это довольно сильное абстрагирование от базы данных благодаря чудесному уровню абстракции QueryBuilder и Eloquent ORM, сегодня вы используете SQLite а завтра MySQL, а послезавтра решите использовать PostgreSQL и т.д. при этом вам не придётся ничего особо переделывать в приложении (при использовании моделей или QB без голых запросов).
    По этому желательно не возлагать никакой логики на базу данных, все отношения (а так-же акцессоры и мутаторы, ассоциации) описываются в моделях и позволяют контролировать целостность данных средствами Laravel а не базы данных.
    Ответ написан более трёх лет назад
    4 комментария
    4 комментария
  • Плодить ли посредников, или сделать один жирный?

    mcmraak
    Александр Аблизин @mcmraak Автор вопроса
    php+sql+js+bicycle+crutches
    Мой собственный ответ возник стихийно как продукт общения с коллегами (спасибо @kliss) и медитации. Нет каких-то лайфхаков на тему как сделать плохо. Плохо всегда можно сделать хорошо. Сейчас я сэкономлю полчаса на том что вынесу всю логику в один middleware создав разветвлённую сеть "if else" и погребу мою лень в одном файле. Но когда придёт время возвращать "технический долг" в момент масштабирования, я однозначно вспомню те 1.5 попугая которые я пожалел на выделение памяти (хотя я так и не знаю, жрут ли безнаказанно память невостребованные объявления моделей в Laravel, как он там потом всё маппит и оптимизирует для роута для меня пока магия). И это будет скорее всего во первых внезапно, во вторых несвоевременно. И это касается вообще всего что связано с архитектурой логики. Вычислительные мощности с каждым днём дешевеют, а вот нервная система пока нет.
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Можно ли выкладывать коды нескольких js библиотек в один js файл и ИСПОЛЬЗОВАТЬ на сайте?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Не можно а нужно, особенно если скриптов много. Гуглите, вот например статейка https://habrahabr.ru/post/29937/
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как лучше поступить в Ubuntu desktop 16?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Лучше не надо на комп, если хочется ubuntu на комп то лучше 14.04, а эта пока сырая, вот с начала вроде всё нормально но позже понимаешь что постоянно приходится подкручивать то тут то там. Вроде всё по мелочам, но зачем оно надо? Если только для ознакомительных целей, так сказать почувствовать себя упорным (или упоротым) линуксойдом :)
    Ответ написан более трёх лет назад
    Комментировать
    Комментировать
  • Как узнать в чем проблема при загрузки сайта нв хостинг?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Смотреть где проблема нужно в error.log!
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
  • Почему может не срабатывать click()?

    mcmraak
    Александр Аблизин @mcmraak
    php+sql+js+bicycle+crutches
    Попробуйте повесить обработчик не на элемент а на документ. Т.е. не
    $('td.WorklistTableSelectGridArrow').click( function(){...});

    а
    $(document).on('click','td.WorklistTableSelectGridArrow',function(){...})
    Ответ написан более трёх лет назад
    2 комментария
    2 комментария
Оценили как «Нравится»
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • sasmoney
    sasmoney
    • 9 ответов
    • 0 вопросов
  • vabka
    Василий Банников
    • 7 ответов
    • 0 вопросов
  • Drno
    • 5 ответов
    • 0 вопросов
  • GNUBack
    • 5 ответов
    • 0 вопросов
  • Sanes
    Sanes
    • 4 ответа
    • 0 вопросов
  • Vindicar
    Vindicar
    • 4 ответа
    • 0 вопросов
  • © Habr
  • О сервисе
  • Правила
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации