Drupal 8. Внешние php файлы. Как подключать правильно? Или правильно не подключать вообще?

Главные вкладки

Аватар пользователя VasyOK VasyOK 26 сентября 2017 в 13:49

На сайте есть части на которых используется своя БД и свои php файлы. В старой версии сайта модержимое php файлов подгружалось в ноды через формат ввода с PHP обработчиком. Как посоветуете делать в новой версии?

Лучший ответ

Аватар пользователя bumble bumble 26 сентября 2017 в 14:34

Советую не делать так в новой версии.

Комментарии

Аватар пользователя VasyOK VasyOK 26 сентября 2017 в 15:12

А как правильно делать в новой версии? Как отобразить на сайте работу не-Drupal php файлов?

У многих людей сайт на одной платформе, а форум (и много чего другого) на другой.

Аватар пользователя bumble bumble 26 сентября 2017 в 15:14

В Drupal все принято реализовывать модулями.
Если необходимо подключение стороннего, чужого кода - его можно оформить в виде библиотеки, и подключить композером.

Аватар пользователя VasyOK VasyOK 26 сентября 2017 в 15:23

Дык некоторые Друпал считают сторонним кодом Lol Композер - это как план Б.

Как я уже поэкспериментировал, php файлы в Drupal 8 подключаются, но не работают со своими БД. Что делать чтобы работали? Размещать их вне директории сайта? Тогда как подключать?

Аватар пользователя bumble bumble 26 сентября 2017 в 15:27
1

"Спрошу как надо - но во внимание не приму, сделаю по-своему. Чего мне там какое-то чужое время..."

По работе стороннего кода - задавайте вопросы его автору, если сами не осилите разобрать.

Аватар пользователя VasyOK VasyOK 26 сентября 2017 в 15:48

Т.е. если какая-то сторонняя программа вне папки сайта - это нормально. А показ ее работы на сайте может осуществляться только через Композер?

Упрощаю вопрос. Есть другой сайт который работает на поддомене. Есть ли простой вариант отобразить html файл этого сайта в ноде Drupal-а ?

Аватар пользователя VasyOK VasyOK 26 сентября 2017 в 23:26

Извините за тупой вопрос. Есть набор html php файлов, который работал на прошлой версии сайта со своей БД-й. У меня на Опенсервер это тоже работает (а главное php-файлы с паролями скачать можно). Залил это все на домен отдельный от Друпала - php не работает с БД.
Как сделать чтоб работало?
Никогда не строил свои ЦМС. Уже догадываюсь о причинах переделки всего сайта.

Аватар пользователя gun_dose gun_dose 26 сентября 2017 в 23:43

Если есть, скажем, форум на стороннем движке, кладём его в субдиректорию и говорим апачу или нжинксу, как обрабатывать страницы этой субдиректории. Друпал тут ни при чём. Он даже не должен затрагиваться при обработке таких страниц. Совершенно нормальная практика, классический пример - fast 404.

Аватар пользователя VasyOK VasyOK 26 сентября 2017 в 23:53

Я понимаю что Друпал ни при чем. Теперь точно ни при чем.

Хорошо, упрощу вопрос до предела. папка, в ней 2 файла html и php (в нем пароли к БД). Как обрабатывать страницы? Что сказать Nginx-у?

Аватар пользователя VasyOK VasyOK 27 сентября 2017 в 13:37

Спсибо за уделенное внимание!
Как -то все стало работать. При каких то других настройках сервера. Думаю более правильных. С проблемой разобрался. С композер - на будущее.
Какого Бориса вы имеете ввиду?

Аватар пользователя VasyOK VasyOK 27 сентября 2017 в 14:04

Извните, ошибся. Был тут Дубовский (с Белоруссии, а не с Радона). Борис, я вас все время с ним путал.

Аватар пользователя klevunin klevunin 1 июля 2019 в 20:57

Нет ни чего плохого подключиться к drupal из своего скрипта для получения доступа к работе с ним. Свои скрипт может вообще быть не связан с сайтом и делать что то свое.
Делать это можно вот так

<?php
use Drupal\Core\DrupalKernel;
use 
Symfony\Component\HttpFoundation\Request;

define('DRUPAL_DIR''/home/www');
require_once 
DRUPAL_DIR '/core/includes/database.inc';
require_once 
DRUPAL_DIR '/core/includes/schema.inc';

$autoloader = require_once  DRUPAL_DIR .'/autoload.php';

$request Request::createFromGlobals();

// Bootstrap drupal to different levels
$kernel DrupalKernel::createFromRequest($request$autoloader'prod');
$kernel->boot();
$kernel->prepareLegacyRequest($request);

?>
Аватар пользователя klevunin klevunin 2 июля 2019 в 9:01

Это зависит от того, что вы делаете, а не потому, что "принято"
Если у вас связка какой-то системы, которая живет в рамках одной машины в API нет необходимости.
А если оно понадобиться то его можно быстро реализовать. Отталкиваться нужно от задачи всегда.

Аватар пользователя bumble bumble 2 июля 2019 в 12:47

Так "принято", потому что это кейс из "лучших практик", и с ним сталкивалось огромное число людей, пришедших в итоге к общему решению подобных задач. Никто не заставляет делать так, и никак иначе.

Аватар пользователя sas@drupal.org sas@drupal.org 2 июля 2019 в 12:50
1

Поддержу коллегу. Если придерживаться друпал вай и хороших системных практик, то сокращаются затраты на дальшейшую поддержку и развитие кода, иначе делать то же можно, но надо понимать до конца последствия своих действий.

Аватар пользователя VasyOK VasyOK 2 июля 2019 в 10:43

Спасибо Алексей, ты как всегда вовремя!
Там в соседней теме человек пилит строительную биржу на нескольких БД, можешь объяснить ему что и как?