1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. salitypw
  2. salitypw
  3. salitypw
    Какой в этом смысл? Вызвать метод из вне ты все равно позволяешь используя __get, но напрямую вызвать нет. Я к тому, что магия __get дает дополнительную нагрузку при вызове, но в данном случаи не несет никакой пользы. Там частенько встречаются куски кода, которые противоречат друг другу, ибо тогда было время активного изучения пыха и каждый день узнавалось что-то новое и велосипед писался дальше уже с учетом полученных новых знаний. Бесполезная затея. Тот же модуль работы с базой зависит от модуля Caching Все зависимости проходят через MvcBox::getInstance (правда встречаются случаи, где другие компоненты используются в обход MvcBox::getInstance, что я все забываю исправить) , которые потом легко найти. Например, у тебя конфиги вшиты в сами модули и для того, чтобы сделать два проекта на твоем framework'е необходимо его скопировать. Т.е. дважды использовать его не получится т.к. у тебя настройки всего приложения зависят от настроек framework'а и отдельно от него не меняются. Изначально так и задумывалось, что можно создать только один проект. Была мысль переделать, но так и не дошли руки. Так же была идея полностью все переписать, не в этом нет смысла, так как есть уже все готовое оттестированые решения, на пример те же - Laravel, Zend, Symfony + кучи бандлов , что позволяет решать 99,9% всех задач. Так же Composer'ом можно подтянуть сторонние библиотеки.
    Сообщение от: salitypw, 5 апр 2015 в разделе: PW Разработки
  4. salitypw
    Согласен для данной задачи использовать framework не самая лучшая идея. Причем не документированный framework в котором кроме автора никто не разбирается. Там часть legacy кода родом с середины 2012-го года, который я не стал трогать, чтобы не ламать обратную совместимость с некоторыми старыми проектами. Да и фреймворком я бы свой велосипед не назвал, ибо функционал беден. Скорее всего это простенький MVC каркас (в принципе примерно так и переводится название) с базовым набором библиотек, которые избавляют от основных рутинных задач. Там частенько встречаются куски кода, которые противоречат друг другу, ибо тогда было время активного изучения пыха и каждый день узнавалось что-то новое и велосипед писался дальше уже с учетом полученных новых знаний. Но тогда я допустил ошибку - взял себе за образец CodeIgniter (с него же был взят и стиль PHPDoc, и многое другое). Все еще иногда его применяю, когда Laravel нет смысла использовать, но и вручную все писать тоже не охота. В Http::request, функция curl_setopt будет вызвана минимум 7 раз, если не ошибаюсь. Для таких случаев есть: curl_setopt_array. Там все так и задумано, чтобы можно было менять только некоторые параметры запроса, все остальное будет взято с конфига. Ниже по коду есть Extended HTTP request - Http::eRequest , который устанавливает опции через curl_setopt_array() В классе Foundation, все методы protected. Зачем? Чтобы этот класс только наследовался. Конфиги в различных папках, причем их прилично. Уменьшить зависимость между компонентами. Чтобы можно было "безболезненно" вырезать компонент, или же использовать его отдельно от велосипеда без изменений (или с их минимальным количеством). Так же позволять устанавливать любое свойство через __set, не есть хорошая идея. __set используется только в activeRecord (и то при создании сущности) и в Io (для успрощения работы с некоторыми методами). Во многих файлах используется пространство имен MvcBox, которого у тебя нет. Зато есть одноименный класс MvcBox. Сомневаюсь, что ты через use MvcBox подключаешь этот класса, т.к. его ты везде вызываешь из глобального пространства. Он там используется "на всякий случай", если вдруг ошибусь и вызову не из глобального, а с текущего пространства имен. Конструктор класс не может ничего возвращать. Я знаю, у меня конструкторы ничего и не возвращают, return; (или иногда встречается return null; ) использую для прерывания работы конструктора (когда это необходимо). Часть файлов, которые я бы отнес к framework'у в папке bootstrap. В bootstrap я вынес то, что (на мой взгляд) можно отнести к так называемым "Побочным действиям" (PSR-1). Некоторые компоненты по сути и не являются побочными действиями, но я предпочел все равно вынести их в bootstrap
    Сообщение от: salitypw, 5 апр 2015 в разделе: PW Разработки
  5. salitypw
  6. salitypw
    Собственно как видно с названия темы - ничего сверхъестественного , простенькая система автоматического приема платежей для PW на базе шлюза http://free-kassa.ru/ 1) Распаковываем архив. 2) Открываем src/vendor/Mvcbox/Database/configs/database.conf.php и указываете ваши данные для подключения к базе: [IMG] Правим конфиги: 3) app/Models/Config/FreeKassa.php [IMG] SHOP_ID - ID вашего магазина в системе free-kassa SECRET_WORD, SECRET_WORD_2, ACCESS_KEY - придумайте секретные значения. API_URL - оставить как есть 4) app/Models/Config/Etc.php [IMG] Думаю, что тут все понятно. 5) Заливаем файлы на WEB сервер той серверной машины, на которой стоит сам игровой сервер. Далее открываем страницу: http://[IP or Host]/index.php/main/links/ и видим примерно такое: [IMG] На этой странице сгенерированы данные для конфигурации вашего магазина: [IMG] 6) ВНИМАНИЕ!!! После того, как Вы закончили настройку - ОБЯЗАТЕЛЬНО откройте app/Controllers/Main.php и раскомментируйте строку 52 . Из этого: [IMG] Сделайте вот это: [IMG] В итоге получается такая простенькая страничка: [IMG] Теперь на счет того, куда все это сохраняется: 1) Таблица autodonate_users_data : [IMG] В этой таблице хранится текущий баланс игрока. user_id - это ID аккаунта игрока в таблице users amount - текущий баланс игрока (ВНИМАНИЕ!!! Баланс хранится в копейках, а не рублях) 2) Таблица autodonate_recharge_history : [IMG] В этой таблице хранится история пополнений баланса. user_id - это ID аккаунта игрока в таблице users amount - сумма пополнения баланса (ВНИМАНИЕ!!! Сумма хранится в копейках, а не рублях) recharge_date - Дата пополнения баланса (timestamp) Информацию с этих таблиц Вы уже будете использовать в своих скриптах. Вот и все, вроде ничего не забыл :) P. S. Клиент-Серверный вариант не было смысла делать, так как шаровый авто-донат может понадобиться лишь тем, у кого нет денег на платные ЛК, а соответственно нет и денег на защиту сервера. То есть спалить реальный IP машины не составляет труда. License: MIT License
    Автор темы: salitypw, 3 апр 2015, ответов - 14, в разделе: PW Разработки
  7. salitypw
  8. salitypw
  9. salitypw
  10. salitypw
  11. salitypw
  12. salitypw
  13. salitypw
  14. salitypw
  15. salitypw
    [IMG] [IMG]
    Сообщение от: salitypw, 26 янв 2015 в разделе: Услуги
  16. salitypw
  17. salitypw
  18. salitypw
    При чем тут вообще DDoS и 2ip.ru ? На трех скринах я показал, что в $_SERVER['SERVER_ADDR'] находится реальный внешний адрес сервера. Мол хотите ддосить меня - вот мой айпи. И ненужны вам всякие определяшки. Может просто стоит правильно настраивать сервер? Ну, а если требуется вывести IP адрес именно сервера(внешний), где выполняется пхп скрипт? Сразу кто то из вас скажет, так есть же ещё одна суперглобальная переменная окружения! Код: $_SERVER['SERVER_ADDR'] Конечно! Так то оно так, но есть одна проблема, она покажет только локальный IP адрес сервера, обычно это 127.0.0.1 Может просто стоит правильно настраивать сервер? :) [IMG] [IMG] [IMG] --- добавлено: 21 янв 2015 в 15:49 --- P. S. С каких пор IP вида 192.168.*.* стал внешним? :^) [IMG] Какое отношение ко мне имеет комментарий HolaRiva ? --- добавлено: 21 янв 2015 в 21:30 --- Я сказал, что достаточно настроить WEB сервер, чтобы в $_SERVER['SERVER_ADDR'] содержался внешний адрес сервера, а не 127.0.0.1
    Сообщение от: salitypw, 21 янв 2015 в разделе: PHP
  19. salitypw
  20. salitypw