За последние 24 часа нас посетили 20066 программистов и 1082 робота. Сейчас ищут 699 программистов ...

Доступ к общим файлам в common

Тема в разделе "PHP для профи", создана пользователем Konstant1n, 26 дек 2018.

  1. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Я вот подумал получается у нас есть два инстанса yii с общей бд. Которые используются только для того что бы скрыть информацию между разработчиками. Забавно.
     
  2. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    ТС как раз-таки от этого и хочет избавиться, частично.
    --- Добавлено ---
    ...Но при этом сохранить возможность несложного разделения.
    --- Добавлено ---
    В принципе на продакшене можно даже свой код продублировать. Ничего сильно плохого в этом нет.
     
  3. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    попытка №... объясняю еще раз
    рабочая директория admin.x1.local - директория backend/web
    рабочая директория x1.local - директория frontend/web
    общие файлы в директории common

    проблемы была у меня с подключением:
    файлов из common в backend/web
    файлов из common в frontend/web

    с этим я разобрался - diename(__DIR__,уровень)
     
  4. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    @Konstant1n Вопрос мы поняли. Тут дело в другом. Зачем тебе это? Зачем отделять админку? Добавь папку с контроллерами админки в гитигноре плюс тоже самое сделать с вюхами и никаких проблем. Отделить html от php вот тут да есть логика но в fullstack этого полноценно не сделаешь. Yii под json api + next electron rn намного интереснее. Там уже не важно что именно фронт сайт админка моб приложения или десктоп.
     
    Konstant1n нравится это.
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Это разные хосты с, видимо, разными корнями.

    И что такое рабочая директория? Как я писал выше, __DIR__ содержит не рабочую директорию, а директорию, в кот. находится тек. исп. файл. Фронт-контроллер(ы) у вас находятся в корне (корнях)? Определение константы и ф-ции autoLoad надится непосредственно во фронт-контроллере?
    --- Добавлено ---
    Если нет, убираешь __DIR__ из autoLoad и определяешь отдельную константу во фронте, либо все считаешь относительно местоположения файла, в кот. находится autoLoad.
     
    Konstant1n нравится это.
  6. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    да, это я знаю. каждый день в php manual захожу
     
  7. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    ...реальный пример определения констант во фронте:
    PHP:
    1. define('PATH',dirname(__DIR__).'/mods/');
    2. define('INCLUDE_PATH',dirname(__DIR__).'/libs/');
     
    Konstant1n нравится это.
  8. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    я в терминах не совсем разбираюсь - гитигноре?
    т.е. ты предлагаешь контроллеры, вьюхи, модели закинуть в одну папку, не зависимо от того, что они относятся к админке или к пользовательской части?
    т.е. будет так:
    Код (Text):
    1. хостинг public_html:
    2. core
    3. controllers
    4. models
    5. views
    6. ...
    7. web сюда? или сюда index.php?
    один нюьанс, названия некоторых контроллеров одинаковые (админской и пользовательской). тогда оставить один и закинуть туда методы с другого?
    а как потом вызывать метод, который доступен только админу? проверить авторизован или нет, если да, то разрешить, иначе - нет?
     
  9. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    public_html – это паблик (корневой) каталог. Лучше не страдать фигней, а убрать весь нестатик обвес выше корня, чтобы было public_html=web!
     
    Konstant1n нравится это.
  10. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Я вот загуглил как все это в yii организовано хмм.. Вообщем лучше мне темы yii не трогать)
    https://github.com/Georgynet/Blog-Yii2
     
  11. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    т.е. в public_html закинуть index.php и прочие файлы css, js, img
     
  12. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    ...в корне оставляешь только фронт, т.к. убрать и его не всегда получается, поэтому обычно идут на этот шаг.
     
  13. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    :) что-нибудь изменилось?
     
  14. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Да, и это, естественно, тоже в корне, иначе к статик обвесу не будет доступа со стороны браузера.
     
  15. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    т.е.
    public_html
    css
    js
    img
    index.php
    models
    controllers
    core
    ...

    у меня еще остался вопрос про drop_table. на потом оставим
     
  16. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Обычно перед моделями и т.п. оставляют еще один каталог (app, mods и т.п.). Также выносят ядро, особенно если оно разделяемое, но не обязательно:
    public
    app/models

    Помимо ядра это касается и разделяемых либ: или внутри app, или рядом.
     
  17. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Если у тебя структура такая же как в гите и тебе просто нужно настроить openserver там можно указать с какого каталог стартовать (каталог где находится index.php) все само заработает Управление доменами -> Ручное + Автопоиск. А на сервере уже будешь настраивать apache\nginx. Подобные темы лучше создавать в разделе yii
    http://web-sprints.ru/ustanovka-yii2-na-openserver/
     
  18. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.789
    Симпатии:
    646
    Как вариант:
    public_html – общий корень
    frontend/models
    backend/models
    common/models
    --- Добавлено ---
    Это два разных слова :) Имеется в виду drop table `table` ;)
     
  19. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    у это меня все настроено
     
  20. nospiou

    nospiou Старожил

    С нами с:
    4 фев 2018
    Сообщения:
    3.400
    Симпатии:
    510
    Если хочешь упростить ссылку тогда Управление доменами -> Ручное + Автопоиск. (если верить гуглу) и указываешь путь к backend(frontend)/web или (только для dev) можно сделать и через htaccess указываешь рут папку проекта в нем что то типа.
    Код (Text):
    1. RewriteEngine on
    2. RewriteCond %{HTTP_HOST} ^backend.domain.com
    3. RewriteRule ^(.*)$ http://domain.com/backend/web/$1 [L,NC,QSA]
    4. RewriteCond %{HTTP_HOST} ^frontend.domain.com
    5. RewriteRule ^(.*)$ http://domain.com/frontend/web/$1 [L,NC,QSA]
    Ну а вообще я уже запутался что тебе нужно да и yii особо не знаю.
     
    Konstant1n нравится это.
  21. Konstant1n

    Konstant1n Активный пользователь

    С нами с:
    14 авг 2017
    Сообщения:
    273
    Симпатии:
    1
    Адрес:
    Волгоград
    благодарю Вас, быстро ответили, не смотря на некоторые недопонимания..:)