echo;/* Здесь надо вывести из какого файла был вызван текущий файл, в данном случае должно вывести "1.php" */
Я понимаю, что в файле 1.php можно объявить переменную или константу, но интересует именно стандартная функция или предопределенная константа, без каких то дополнительных объявлений.
ОС: Linux, База данных: MySQL, версия: 5.0.51a
Мне необходимо внести изменение в настройку MySQL в файл my.ini, но проблема в том, что он так устроен, что одни и те же команды там повторяются несколько раз.
Как я понял файл разделен на разделы типа [client], [mysqld], [mysqldump], [mysqlhotcopy] и т.д.
Подскажите пожалуйста документацию со всевозможными типами этих разделов с описанием, за что конкретно каждый из разделов отвечает.
Интересует:
1. Сколько всего таких разделов существует.
2. Описание за что каждый из разделов отвечает.
3. Какие настройки доступны для каждого раздела. Этот пункт скорее фантазия, сомневаюсь что есть документации для MySQL конфига на подобие той что сделана для PHP конфига (файл php.ini), где есть список всех всевозможных команд который можно вносить в файл конфигурации.
Гуглил гуглил, так нигде и не нашел, я имею ввиду описание всех всевозможных разделов в одном месте.
А зачем разработчику давать возможность загружать модули на боевой сервер? Они пишутся таким образом чтобы их можно было протестировать как модуль, независимо от основного проекта, иначе это уже его неправильная организация изначально.
Конечно вся разработка расположена на отдельном сервере без локального доступа к боевому серверу.
Zuldek пишет:
Если у вас идут инклуды подобного: include somethingwithoutmygamedoesnotwor k.php
Содержащие основную массу всех классов движка то это уже неправильная организация.
Организация проекта здесь не причем, суть вопроса в другом.
Еще раз привожу пример:
Программист #1 пишет целый класс для работы с чатом, например class.chat.php
Программисту #2 нужен один из методов этого класса для выполнение в файле battle_end.php.
Вот тут то и наступает тот критический момент, что для программиста #2 какие бы мы не организовывали интерфейсы и тому прочее все равно в файле battle_end.php так или иначе будет произведен include класса class.chat.php. А так как будет произведен инклуд, то и содержимое файла можно будет запросто получить. (Добавление)
Zuldek пишет:
Не понимаю причем тут способ организации api и http-протокол Не понял
Ну организуйте хоть на ftp, что от этого изменится?
Как я уже писал выше на примере battle_end.php
Если подобный метод делать через API, то мы вроде выполняем все тот же метод класса class.chat.php, но доступа к самому классу не имеем, проще говоря мы не инклудим класс тем самым не получаем доступа к исходному коду класса.
Да конечно я использую SVN, но он здесь совершенно не причем, если я могу закачать и выполнить php файл на сервере к которому даже автоматически инклудется какой-то другой файл, то я могу получить исходный код этого файла.
Хочу сразу пояснить несколько моментов.
Проекту уже более двух лет.
Каждый день в игре онлайн от 1200 до 1600 пользователей.
То есть проект уже какое-то время стабильно работает на рынке.
Мой вопрос был в основном направлен исключительно на новую идею организации разработки через HTTP API. Насколько это хорошо или плохо?
Главное условие чтобы новый программист не имел доступа к другим модулям проектам.
P.S. Конечно, если я буду реализовывать подобный подход через API, то я и все остальные программисты будем подробно все документировать для вновь прибывших программистов. (Добавление)
tato пишет:
Почитайте, что такое интерфейсы и абстрактные классы.
Поясню, Програмист1 пишет класс расширяющий абстракцию, програмист2 понятия не имеет как класс называется и что он делает, но он знает, что класс расширен из AChat и в следствии этого у него должен быть метод sendToChat.
И на последок, Вам лично необходимо будет только завязать все в одно целое.
В данном подходе, что мешает вновь прибывшему программисту просканить и скачать это файл, а за одно и все остальные файлы к которым он по задумке вроде не имеет доступа?
Доброго времени суток.
Есть проект браузерная онлайн игра которая разрабатывается уже какое-то время, только мной. То есть я единственный у кого есть доступ к php скриптам.
Из за того, что я работаю один в целом проект развивается очень медленно.
И вроде есть деньги нанять еще 2-3 php-программиста, но проблема в том, что за время разработки на мой взгляд проект накопил достаточно много ценной информации которую просто так не даш в свободный доступ. Попросту я боюсь, что нанимая новых программистов кто-то из них обязательно унесет с собой части проекта или того хуже создаст копию, что-то на подобие онлайн игр: комбатса(BK) и олдкомбатса(oldBK).
У меня возникла такая идея, не давать новому программисту доступ к самому проекту, а дать доступ к API проекта, что-то на подобие API ВКонтакте.
Например в проекте есть следующие модули:
/base
/chat
/shop
/battle
Предположим, что у нас есть три программиста каждый работает только над своим модулем:
/base - Общяя папка для всех программстов
/chat - Программист #1 работает над чатом
/shop - Программист #2 работает над магазином
/battle - Программист #3 работает над боем
Соответственно программист #1 имеет доступ только к папкам /base и /chat
Соответственно программист #2 имеет доступ только к папкам /base и /shop
ну и т.д.
Но вот, что если программисту #3 нужна функция для работы с чатом, например:
Программист #3 написал функцию задача которой по завершению боя написать в чате сколько пользователь получил опыта.
Для подобной реализации программсту #3 нужен класс для отправки сообщений в чат. Но к этому классу у него нет доступа. А как я уже сказал дать такой доступ я не могу.
Какую я предлагаю реализацию.
Для получения подобного метода(отправки сообщений в чат) программист #3 просит меня или напрямую обращается к программисту #1 с просьбой сделать данный метод доступным через chat.api, а дальше один в один как API ВКонтакте. Программисту #3 для отправки сообщений в чат достаточно будет выполнить что-то вроде такого:
file_get_contents('http://chat[dot]api[dot]game[dot]ru/?method=[dot][dot][dot]sage&msg=Бой закончен, Вы получили 5 опыта.');
Идея вроде очень хорошая, она полностью решает проблему с тем, что твой проект кто-то украдет так как у каждого программиста будет только та часть кода над которой он действительно работает.
Но здесь есть один минус, это медленный http протокол с которым теперь будет взаимодействовать api.
Какие еще существуют подобные способы организации api кроме http протокола?
Какие вообще варианты разработок крупных проектов существуют?
Например, как устроена организация разработки того же контакта или фейсбука?