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

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

Метки:
Теги Теги
microframework php

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 - не мой профиль занятий, поэтому возможен говнокод и костыли. Знающие люди прошу меня поправить.
 
Последнее редактирование:
Я конечно не силен в PHP но что это за условия? В чем смысл присвоения в переменную константы и все это в условии?
PHP:
if (!app::$type || app::$type = app::TYPE_WEB)
    exit();
if (app::$type = app::TYPE_TEST)
    app::$test->stop();
 
Во время написания этого проекта я работал в Notepad++, ни о каком PHPDoc не шла речь. Кода не настолько много, что бы в нем копаться.
Наличие в коде подобных конструкций мне очень понравилось. Getter нельзя было сделать?
Использование прямых вызовов app::$varname сделано намеренно. Да требуется проверка на null, но такой синтаксис нравится больше, чем Getter'ы
 
И какой прикол? Тот же нотпад с ДЕЗАЕНОМ! (Который крутится на NP++ в 2 клика)
IDE юзать нужно, PHPStorm хотя бы.
Ой, да что ты говоришь! Начнем с того, что там хотя бы нормально работает TAB.
+ Там легче простого скачивать плагины. И да, там есть один чудо-плагин, который раз в 10 сокращает время работы. Например, ты пишешь HTML структуру, и тебя надо написать 10 тегов <div>, в которых будет 15 тегов <ul>, в которых будет 20 тегов <li> в которых будут теги <a> с классом .menu))
И значит с помощью этого плагина, ты просто пишешь - div*10>ul*15>li*20>a.menu>
И вуаля! Одним кликом по TAB появляется структура в 3319 строк)
Интерестно, сколько бы ты писал все это в ручную?))
И это еще не все прелести саблайма.
И да, забыл сказать, за что я люблю саблайм: нажав на CTRL, можно редить несколько строк)
 
Ой, да что ты говоришь! Начнем с того, что там хотя бы нормально работает TAB.
+ Там легче простого скачивать плагины. И да, там есть один чудо-плагин, который раз в 10 сокращает время работы. Например, ты пишешь HTML структуру, и тебя надо написать 10 тегов <div>, в которых будет 15 тегов <ul>, в которых будет 20 тегов <li> в которых будут теги <a> с классом .menu))
И значит с помощью этого плагина, ты просто пишешь - div*10>ul*15>li*20>a.menu>
И вуаля! Одним кликом по TAB появляется структура в 3319 строк)
Интерестно, сколько бы ты писал все это в ручную?))
И это еще не все прелести саблайма.
И да, забыл сказать, за что я люблю саблайм: нажав на CTRL, можно редить несколько строк)
Ну думай так, сиди на блокнотике с ДЕЗАЕНОМ и ровно таким же функционалом. Шторм-то хоть раз открывал?
 
Начнем с того, что там хотя бы нормально работает TAB.
А в шторме нет?
И да, там есть один чудо-плагин, который раз в 10 сокращает время работы. Например, ты пишешь HTML структуру, и тебя надо написать 10 тегов <div>, в которых будет 15 тегов <ul>, в которых будет 20 тегов <li> в которых будут теги <a> с классом .menu))
Это все из коробки в шторме..
И да, забыл сказать, за что я люблю саблайм: нажав на CTRL, можно редить несколько строк)
На этом все? а там есть shift + shift и адекватный поиск по текущему проекту?) а shift f6?
 
А в шторме нет?

Это все из коробки в шторме..

На этом все? а там есть shift + shift и адекватный поиск по текущему проекту?) а shift f6?
Так, все! Прекращаем этот срач! Поговорили и хватит, а то пол форума обосрём)
 
Конечно всё хорошо, но это не тот язык который трудно выучить...
 
Changelog
Исправлена проблема с framework.sql, отсутствовала колонка access_token
Совместимость с PostgreSQL
Исправлена проблема с таблицей сессий, если в бинарном представлении ваш IP адрес содержал недопустимые символы - сессия не создавалась
Исправлены ошибки, добавлена PHPDoc
Новый способ вернуть JSON объект в API контроллерах
Несколько логических изменений в структуре

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

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

Назад
Верх