[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Flextype Components - компоненты для разработки ве
AwilumIT
Доброго времени суток!

Разрешите представить мой проект, который делаю уже довольно давно, может вам он тоже пригодится smile.gif
Flextype Components это набор разделенных (decoupled) компонентов многократного использования.
Все они решают распространенные проблемы, с которыми приходиться сталкиваться в процессе веб-разработки.
Компоненты постоянно улучшаются и добавляются новые.


Github: https://github.com/flextype-components
Сайт: http://components.flextype.org

_____________
Web Developer. Founder of Flextype and Flextype Components.
Experience: PHP(CI,YII,CAKE,FUELPHP), SQL(MySQL, PostgreSQL), JavaScript(jQuery, YUI), NoSQL(MongoDB), DVCS(Mercurial, GIT), Subversion, CSS3, HTML5
AllesKlar
Цитата
Free components for kickass Web Applications.

biggrin.gif
Люблю людей с юмором. Не с быдло-матами, а с тонким профессиональным юмором.

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

Если же нужно быстро запилить небольшой сайтик, то самое то.

_____________
[продано копирайтерам]
Эли4ка
AwilumIT
для компонента Agent у вас слишком маленькая база.
MSIE,MSIE6,MSIE7,MSIE8,MSIE9,edge,amigo,bada и ддругие
Смарт телевизоры-нет вообще
И очень мало поисковых роботов.

Я не хочу как-то обидеть вас, но с такой маленькой базой ваш компонент не конкуретно способен с другими.
waldicom
Цитата (Эли4ка @ 11.05.2018 - 14:39)
MSIE6

MSIE6! О боже! Она сказала MSIE6? Я не ослышался? Точнее не очитался? Фсё, в монастырь! В монастырь и не расти трава!
Забаньте его (этого пользователя) уж наконец, проявите человечность!!

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Эли4ка
waldicom, за что меня забанить?
Я говорю, что во всех других аналогах есть MSIE6,что такого я сделала? sad.gif
Michael
Наборы статических функций хелперов и не более

_____________
There never was a struggle in the soul of a good man that was not hard
Zzepish
Michael
А чем плохо? Имхо: удобно же
AwilumIT
Цитата (Michael @ 12.05.2018 - 04:03)
Наборы статических функций хелперов и не более

не вижу проблемы в том что компоненты - это статические классы/хелперы

_____________
Web Developer. Founder of Flextype and Flextype Components.
Experience: PHP(CI,YII,CAKE,FUELPHP), SQL(MySQL, PostgreSQL), JavaScript(jQuery, YUI), NoSQL(MongoDB), DVCS(Mercurial, GIT), Subversion, CSS3, HTML5
AwilumIT
Цитата (Эли4ка @ 11.05.2018 - 13:39)
AwilumIT
для компонента Agent у вас слишком маленькая база.
MSIE,MSIE6,MSIE7,MSIE8,MSIE9,edge,amigo,bada и ддругие
Смарт телевизоры-нет вообще
И очень мало поисковых роботов.

Я не хочу как-то обидеть вас, но с такой маленькой базой ваш компонент не конкуретно способен с другими.

я вас понял! спасибо за критику и предложение

_____________
Web Developer. Founder of Flextype and Flextype Components.
Experience: PHP(CI,YII,CAKE,FUELPHP), SQL(MySQL, PostgreSQL), JavaScript(jQuery, YUI), NoSQL(MongoDB), DVCS(Mercurial, GIT), Subversion, CSS3, HTML5
Zzepish
Однако! Под коробкой - дичь!
Первое, что сходу бросилось в глаза


/**
* Page page file
*/

public static function parseFile(string $file) : array
{
$page = trim(file_get_contents($file)); // лишнее телодвижение
$page = explode('---', $page, 3);
$frontmatter = Shortcodes::driver()->process($page[1]);
$result_page = Yaml::parse($frontmatter);
// Get page url
$url = str_replace(PAGES_PATH, Url::getBase(), $file);
$url = str_replace('index.md', '', $url); // это тут не надо
$url = str_replace('.md', '', $url); // это тут не надо
$url = str_replace('\\', '/', $url);
$url = str_replace('///', '/', $url);
$url = str_replace('//', '/', $url); // лучше тогда заменить на регулярку preg_replace('#[/]{3,}#', '/', $url);
$url = str_replace('http:/', 'http://', $url);// заменит http:// на http:///
$url = str_replace('https:/', 'https://', $url);// так-же
$url = str_replace('/'.Config::get('site.pages.main'), '', $url);
$url = rtrim($url, '/');
$result_page['url'] = $url;
// Get page slug
$url = str_replace(Url::getBase(), '', $url);
$url = ltrim($url, '/');
$url = rtrim($url, '/'); // почему не просто trim? зачем 2 операции?
$result_page['slug'] = str_replace(Url::getBase(), '', $url);
// Set page date
$result_page['date'] = $result_page['date'] ?? date(Config::get('site.date_format'), filemtime($file));
// Set page content
$result_page['content'] = $page[2];
// Return page
return $result_page;
}


И в целом проблемы с логикой. Достаточно часто можно избежать каких-то операций

P.S. кроме того: советую подробнее почитать, как работает str_replace. Очень полезно имхо
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.