1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
  2. Данный раздел создан исключительно для релизов! Вопросы по лаунчеру или обвязке задавайте ТОЛЬКО в соответсвующей теме автора. Любые другие темы будут удалены, а авторы понесут наказание.

Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Веб [PHP] ASFramework - микрофреймворк для написания сайтов

Тема в разделе "Веб-обвязки и лаунчеры", создана пользователем Gravit, 3 янв 2019.

Метки:
  1. Автор темы
    Gravit

    Gravit Активный участник Пользователь

    Баллы:
    66
    ASFramework
    Решил выложить свое творение, написанное несколько лет назад.
    Это - микрофреймворк для тех, кто только начинает изучать PHP и хочет написать что-то свое, но при этом не имеет достаточно знаний, что бы воспроьзоваться Yii2/Laravel/Symfony. Во время написания я вдохновлялся фреймворком Yii2.

    О микрофреймворке
    * Ядро фреймворка содержит всего 121 строку (+ 66 строк index.php) и написан максимально просто и понятно.
    * При этом используется spl_autoload_register, set_exception_handler, namespaces и прочие прелести PHP
    * Запросы обрабатываются контроллерами(имя контроллера передается в ?r=) в котором есть несколько действий(имя действия передается в &a=). Запросы к БД осуществляются прямыми вызовами PDOConnect. Модели не используются.
    * После обработки запроса контроллер передает полученные данные виду(шаблону), который представляет из себя обычный HTML с включениями кода PHP при необходимости.
    * При вылете исключений система автоматически выведет stacktrace на экран если включен DEBUG_MODE или сообщение об ошибке, если DEBUG_MODE не включен. Можно делать свои шаблоны исключений.
    * По умолчанию ядро содержит класс Account, с помощью которого можно работать с пользователями. Доступна система привилегий, флагов, сессий, смены пароля, авторизации и регистрации, выдача и удаление привилегий.
    * Встроена консольная программа as, позволяющая выполнять сервисные команды, такие как "поменять пароль", выдать или забрать права, посмотреть информацию о пользователе с цветным выводом и индикацией.
    Screenshot_20190104_003244.png
    * Встроена система сбора логов в файл
    * Встроен класс, позволяющий из PHP создать ajax форму с автосгенерированным JavaScript кодом
    * Встроена защита от CSRF атаки

    Установка
    Рекомендуется PHP 7.0 и выше
    Так же должен работать на PHP 5.6 и выше
    Работать без папки web можно, нужно будет только изменить index.php и поменять там пути

    1. Настраиваем веб-сервер, что бы папка web смотрела в интернет
    2. Импортируем framework.sql в базу данных в PhpMyAdmin. При использовании PostgreSQL необходимо вручную создать таблицы с необходимыми полями
    3. Копируем папку конфигураций config_example в config
    4. В config/cfg.php настраиваем подключение к БД
    5. В config/main.php указываем путь до папки с сайтом
    Ссылка на GitHub: https://github.com/gravit0/asframework
    Если будет необходимость создам Discord канал.
    P.S. Как то раз я делал скрипт интеграции с моим лаунчером. Будет необходимость - пишите, может получится восстановить. Хоть я и постарался написать нормально, но все же PHP - не мой профиль занятий, поэтому возможен говнокод и костыли. Знающие люди прошу меня поправить.
     
    Последнее редактирование: 26 дек 2019
  2. PunPun

    PunPun Активный участник Пользователь

    Баллы:
    61
    Я конечно не силен в PHP но что это за условия? В чем смысл присвоения в переменную константы и все это в условии?
    PHP:
    if (!app::$type || app::$type app::TYPE_WEB)
        exit();
    if (
    app::$type app::TYPE_TEST)
        
    app::$test->stop();
     
  3. Автор темы
    Gravit

    Gravit Активный участник Пользователь

    Баллы:
    66
    == вместо =
     
  4. PunPun

    PunPun Активный участник Пользователь

    Баллы:
    61
    Че ты несешь? == это равно = это присвоение. РАЗНИЦА!
     
  5. Автор темы
    Gravit

    Gravit Активный участник Пользователь

    Баллы:
    66
  6. PunPun

    PunPun Активный участник Пользователь

    Баллы:
    61
    Я не читаю мысли людей, можно было нормально написать. Я воспринял твой коммент так как ты считаешь что = и == в условии это одно и тоже.
     
  7. Автор темы
    Gravit

    Gravit Активный участник Пользователь

    Баллы:
    66
    Во время написания этого проекта я работал в Notepad++, ни о каком PHPDoc не шла речь. Кода не настолько много, что бы в нем копаться.
    Использование прямых вызовов app::$varname сделано намеренно. Да требуется проверка на null, но такой синтаксис нравится больше, чем Getter'ы
     
  8. MrKoder

    MrKoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    MrKoder
    При написании PHP сценариев юзай Sublime Text.
     
  9. Niemand

    Niemand Активный участник Пользователь

    Баллы:
    66
    И какой прикол? Тот же нотпад с ДЕЗАЕНОМ! (Который крутится на NP++ в 2 клика)
    IDE юзать нужно, PHPStorm хотя бы.
     
  10. MrKoder

    MrKoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    MrKoder
    Ой, да что ты говоришь! Начнем с того, что там хотя бы нормально работает TAB.
    + Там легче простого скачивать плагины. И да, там есть один чудо-плагин, который раз в 10 сокращает время работы. Например, ты пишешь HTML структуру, и тебя надо написать 10 тегов <div>, в которых будет 15 тегов <ul>, в которых будет 20 тегов <li> в которых будут теги <a> с классом .menu))
    И значит с помощью этого плагина, ты просто пишешь - div*10>ul*15>li*20>a.menu>
    И вуаля! Одним кликом по TAB появляется структура в 3319 строк)
    Интерестно, сколько бы ты писал все это в ручную?))
    И это еще не все прелести саблайма.
    И да, забыл сказать, за что я люблю саблайм: нажав на CTRL, можно редить несколько строк)
     
  11. Niemand

    Niemand Активный участник Пользователь

    Баллы:
    66
    Ну думай так, сиди на блокнотике с ДЕЗАЕНОМ и ровно таким же функционалом. Шторм-то хоть раз открывал?
     
  12. MrKoder

    MrKoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    MrKoder
    Как знаешь. Как-то посрать
     
  13. Alta-Host

    Alta-Host Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    Big_Energy
    А в шторме нет?
    Это все из коробки в шторме..
    На этом все? а там есть shift + shift и адекватный поиск по текущему проекту?) а shift f6?
     
  14. MrKoder

    MrKoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    MrKoder
    Так, все! Прекращаем этот срач! Поговорили и хватит, а то пол форума обосрём)
     
  15. MDx10

    MDx10 Активный участник

    Баллы:
    61
    Конечно всё хорошо, но это не тот язык который трудно выучить...
     
  16. MrKoder

    MrKoder Участник Пользователь

    Баллы:
    31
    Имя в Minecraft:
    MrKoder
    Согласен.
     
  17. Автор темы
    Gravit

    Gravit Активный участник Пользователь

    Баллы:
    66
    Changelog
    Исправлена проблема с framework.sql, отсутствовала колонка access_token
    Совместимость с PostgreSQL
    Исправлена проблема с таблицей сессий, если в бинарном представлении ваш IP адрес содержал недопустимые символы - сессия не создавалась
    Исправлены ошибки, добавлена PHPDoc
    Новый способ вернуть JSON объект в API контроллерах
    Несколько логических изменений в структуре

    Новая инстукция по установке в шапке темы
     

Поделиться этой страницей