Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
0 / 0 / 1
Регистрация: 30.04.2014
Сообщений: 13

Устранение дублирования

14.09.2017, 22:10. Показов 3035. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую участников форума!
Какие есть варианты сабжа к такому:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Render {
    public function __construct()
    {
        $this->_body_content = file_get_contents("template.html");
    }
 
    public function title($value)
    {
        $this->_body_content = preg_replace("/~TITLE~/", $value, $this->_body_content);
    }
 
    public function meta_keywords($value)
    {
        $this->_body_content = preg_replace("/~META_KEYWORDS~/", $value, $this->_body_content);
    }
 
    public function meta_description($value)
    {
        $this->_body_content = preg_replace("/~META_DESCRIPTION~/", $value, $this->_body_content);
    }
 
    public function content($value)
    {
                ...
    }
}
Вобщем это методы класса, который отвечает за рендеринг, они вызываются путем обхода ассоц-массива который содержит пару array("title" => "this is title", ..., ...). Из кода видно, что методы title, meta_keywords, meta_description похожи, разница только в регекспах, но вот в методе content необходимо провести дополнительную обработку контента, прежде чем заменять в $this->_body_content.
Каким образом можно устранить это дублирование?
Думал вынести эти методы в классы с общим методом, который в конце заменяет строку на сформированное значение, но тогда в текущем экземпляре необходимо изменить $this->_body_content, а это выходит - шило на мыло. Единственное с этим вариантом, наверное, можно инициализировать классы с ссылкой на $this->_body_content чтобы не возвращать его?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2017, 22:10
Ответы с готовыми решениями:

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

Как можно избежать дублирования постов?
Скажите, как можно избежать дублирования постов на главной? Сейчас у меня сделан вывод случайных постов в рубриках про игры и про...

Устранение ошибок
Ребят,помогите не понимаю почему не запускается программа open server на php пишет ошибку.Warning: Division by zero in...

38
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
07.10.2017, 19:08
Студворк — интернет-сервис помощи студентам
andr-xw. насчёт унификации, простоты обучения и поиска ответов глубоко сомневаюсь.. Друг мне рассказывал за чела, который нахваливалнахваливал плюсы фреймворков, полгода прошло,так и до сих пор с форумов не вылазит)) Очень сильно сомневаюсь что это экономит время. В самописе проще разобраться, а значит, и быстрее. Плюс потеря гибкости. У меня написан движок, в котором роуты построены на регулярных выражениях изначально, понимаешь вкус прикола?) А маленькие или большие сайты делать - это совершенно неважно. Что добавить новый контроллер в свою реализацию, что в чужую, всё равно писать придётся, за тебя этого никто не сделает, isn`t it? И я встречался не с одной реализацией с косяком index.php, а с двумя и это уже попахивает плохой тенденцией, а не случайностью.
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
07.10.2017, 19:54
sash, ты просто цепляешься за идею знать весь код как свои 5 пальцев. Но это совсем не обязательно. Работа с фреймворком это в том числе работа с гуглом, какие-то часто используемые вещи ты запомнишь, но остальные ты будешь гуглить и через 5 лет. И это нормально. И это все равно быстрее, чем писать самому. В php ты тоже не помнишь все функции и классы наизусть и многое приходится гуглить.

В самописи разобраться сложнее. Документации к ней обычно нет. Комментариев в коде тоже. Приходится читать сам код, который чаще всего не лучшего качества. Он и в фреймворках не всегда идеален, но там от него можно абстрагироваться и обойтись документацией. А в велосипедах нет.

Роуты на регулярках на самом деле очень не гибки. Попробуй сделать обратную конвертацию контроллера/экшна/параметров обратно в урл, описанный в регулярке.

А вот тенденции с index.php как раз обратные, все чаще точку входа именуют public/index.php, что возвращает нас на 15 лет назал, во времена шаред хостингов, когда точка входа называлась public_html/index.html
0
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
07.10.2017, 21:04
Цитата Сообщение от sash Посмотреть сообщение
чем, спрашивается, лучше чужой фреймворк, ну чем, скажи?
Чужой уже написан, оттестирован тысячами разработчиков и содержит кучу функционала, который писать заново нет никакого смысла, да и не хватит у вас сил и времени на это.

Свой движок хорошо подходит для саморазвития, ну и для решений типичных задач клиентов - сайты-визитки, блоги и т.п. Для серьёзных проектов брать самописку бессмысленно - на доработку движка уйдёт гораздо больше времени, чем на изучение аналогичного функционала в фреймворке.

Цитата Сообщение от sash Посмотреть сообщение
Друг мне рассказывал за чела, который нахваливалнахваливал плюсы фреймворков, полгода прошло,так и до сих пор с форумов не вылазит))
Странный аргумент. Разве разработчику самописного движка не нужно гуглить или сидеть на форуме? Информация приходит в голову сама собой?

Фреймворк - не волшебная палочка. Это инструмент, который тоже нужно уметь использовать.

Вы в любом случае будете использовать сторонние решения, тот же PHPExcel к примеру. Вопрос только в том, почему подобные библиотеки никто с нуля писать не хочет, а тот же Router или Request должен быть свой.
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
08.10.2017, 18:03
andr-xw, я честно пытался выучить фреймворки много раз. Но меня тошнит и воротит от них на второй день. Это просто чудовищно что там наворочено.. Душа художника не выдерживает Лучше взять кусок сырой глины и нужные инструменты и вылепить что нужно, чем переделывать статую Венеры в Геркулеса. И удовольствие получишь и времени Меньше потратишь, не говоря уже про нервы. Раз напишешь и можешь ездить))) В качестве инструментов классно взять готовые решения (библиотеки, частичные решения), конечно не стоит писать свою джейкверю заново, но СКОМПОНОВАТЬ и выстроить свою структуру лучше самостоятельно. Я опытным путём прихожу к настолько простым решениям, что просто смешно в чужом копаться. Это доступно любому джуну. Ты только представь себе мучения бедных хомячков, если бы ВК или фэйсбук стояли на фреймворках Я за ручную работу, я на это не куплюсь, на эти фреймворки и цмс, слишком большую цену приходится платить за это бесплатное)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.10.2017, 18:24
Цитата Сообщение от sash Посмотреть сообщение
Лучше взять кусок сырой глины и нужные инструменты и вылепить что нужно, чем переделывать статую Венеры в Геркулеса.
Так и не надо переделывать. Надо брать сразу что нужно. И аналогия странная, фреймворк это не готовое решение, а та самая глина. А самописные решения это лопата, которой эту глину еще добыть надо.
Цитата Сообщение от sash Посмотреть сообщение
времени Меньше потратишь
Эээ... то есть каждый раз все писать с нуля это меньше времени?
Цитата Сообщение от sash Посмотреть сообщение
Ты только представь себе мучения бедных хомячков, если бы ВК или фэйсбук стояли на фреймворках
При чем тут пользователи продукта?
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
08.10.2017, 20:11
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Эээ... то есть каждый раз все писать с нуля это меньше времени?
Нет. Не каждый раз. Один раз напиши и пользуйся Своим проверенным. К примеру, напиши класс с функциями подключения и работой с бд, для отправки почты, регистрации добавления комментариев и т.д и пользуйся. Движок продумай, напиши, отточи и он у тебя будет навсегда. Слышал, что на симфони реализовать простейшую регистрацию и авторизацию это WTF..

Цитата Сообщение от Jewbacabra Посмотреть сообщение
При чем тут пользователи продукта?
Я имел в виду программистов

Цитата Сообщение от Jewbacabra Посмотреть сообщение
фреймворк это не готовое решение, а та самая глина. А самописные решения это лопата, которой эту глину еще добыть надо.
Самопис проще, а значит, и лучше. Чью логику работы программы быстрее поймёшь, ту, которая тучу лет писалась, или чей-то самопис? С такой глиной мало радости работать(( И я уверен на все сто, что никто кто будет писать свой движок, не засунет индексный файл в какую-то папку Неужели непонятно, что это коммерческий замут с этими фреймворками, галимый разводняк и головная боль(( Это должно быть написано просто и понятно, убраны все косяки, такие, например, как с индекс.похапе. Почему я должен этим заниматься, для кого и для чего это было сделано? Для облегчения или офигевания?? Всё гениальное - просто, это понятно, на нём много не заработаешь и жизнь его развитию и продвижению не посвятишь. Это можно усложнять бесконечно до тех пор пока там сам чёрт с божьей помощью перестанет разбираться)
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
08.10.2017, 22:04
Цитата Сообщение от sash Посмотреть сообщение
Один раз напиши и пользуйся
т.е все равно фреймворк, только свой
Цитата Сообщение от sash Посмотреть сообщение
Своим проверенным
Проверенным кем? Одним человеком, вместо огромного сообщества
Цитата Сообщение от sash Посмотреть сообщение
Движок продумай, напиши, отточи и он у тебя будет навсегда
Сколько времени уйдет? После каждого проекта движок будет сильно переделан, так как создавался с привязкой к конкретному проекту, и в другом случае может его придется превращать из
Цитата Сообщение от sash Посмотреть сообщение
Венеры в Геркулеса
А потом обнаружится уязвимости, баги и т.д. как все это синхронизировать со старыми проектами.
Цитата Сообщение от sash Посмотреть сообщение
Слышал, что на симфони реализовать простейшую регистрацию и авторизацию это WTF..
Не надо слушать не пойми кого. Я реализовывал. Там это все из коробки работает.
Цитата Сообщение от sash Посмотреть сообщение
Я имел в виду программистов
Гораздо проще программисту придти на фреймворк который он знает, чем на что-то не известное.
Цитата Сообщение от sash Посмотреть сообщение
Самопис проще, а значит, и лучше.
Сильное утверждение.
Цитата Сообщение от sash Посмотреть сообщение
Чью логику работы программы быстрее поймёшь, ту, которая тучу лет писалась, или чей-то самопис?
Ту, которая хорошо задокументирована, отлажена, и имеен огромное сообщество.
Цитата Сообщение от sash Посмотреть сообщение
Неужели непонятно, что это коммерческий замут с этими фреймворками, галимый разводняк и головная боль(( Это должно быть написано просто и понятно, убраны все косяки, такие, например, как с индекс.похапе. Почему я должен этим заниматься, для кого и для чего это было сделано?
ЩИТО?
1
Эксперт PHP
3900 / 3238 / 1353
Регистрация: 01.08.2012
Сообщений: 10,914
08.10.2017, 23:44
Цитата Сообщение от sash Посмотреть сообщение
Один раз напиши и пользуйся
Как сильно вы ошибаетесь... движок растёт и совершенствуется вместе с ростом разработчика и более сложными задачами.

Сегодня для работы с БД достаточно пары функций вроде select и selectRow, завтра понадобится ещё десяток, послезавтра окажется, что для некоторых проектов гораздо проще использовать ActiveRecord или DataMapper. Потом захочется быстро настраивать связи между таблицами и т.д. В итоге всё равно придёте к своему Геркулесу, только окажется, что он гораздо хуже аналогов и нет смысла продолжать его развитие.

Цитата Сообщение от sash Посмотреть сообщение
Чью логику работы программы быстрее поймёшь, ту, которая тучу лет писалась, или чей-то самопис?
1. Фреймворка, потому что у него есть документация. Самопис неизвестно как работает, может содержать недоработанный функционал, дыры и баги, о которых знает только разработчик (а может и он сам не знает).

2. Если вы знакомы с фреймворком, на котором сделан сайт, логику работы поймёте в разы быстрей, поскольку уже знаете возможности движка.

Цитата Сообщение от sash Посмотреть сообщение
Самопис проще, а значит, и лучше.
Самокат проще автомобиля, значит лучше?
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
09.10.2017, 00:20
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Сколько времени уйдет? После каждого проекта движок будет сильно переделан, так как создавался с привязкой к конкретному проекту
Ну у меня ушло неделя где-то, смотрел на ютубе видео где парень писал интернет-магазин и вместе с ним писал. И его не надо вообще переделывать, какая разница - интернет-магазин или блог? Везде нужно чтото откуда-то выбрать и вывести, и всё. Смотри, это роуты
PHP
1
2
3
4
5
6
7
8
9
10
  /**
  * запросу соответствует строка, содержащая имя класса
  */
  return array(
    '^index\.php|index\.html$' => 'mainPage/index/0',
    '^(page=(\d+)?)?$' => 'mainPage/index/$2', // actionIndex в mainPageController с передачей параметра какая страница номер затребована
    '^\?search=(.*)$' => 'search/search/$1',
    '^[^\/]+$' => 'category/category/$0', 
    '^[^\/]*\/(.*)$' => 'article/article/$1'
  );
Всё что нужно в случае нового проекта это дописать или убрать функции в модели и написать или изменить контроллеры (ну и виды, само собой). В случае с фрейморком это всё равно придётся делать самому, попутно исправляя его специально замученные баги ( с индекс.пхп ну это вообще днище.. ) Гораздо свободнее начать с меньшего, без этих html-хелперов для недоумков, шаблонизаторов и прочих фунционалов. Навалили кучу, а вы гребитесь в этом как хотите
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.10.2017, 00:49
Цитата Сообщение от sash Посмотреть сообщение
И его не надо вообще переделывать, какая разница - интернет-магазин или блог? Везде нужно чтото откуда-то выбрать и вывести, и всё.
Понятно, ты просто сталкивался с блогами и простыми ИМ. Между выбрать и вывести может быть очень нетривиальная бизнес логика.
Цитата Сообщение от sash Посмотреть сообщение
В случае с фрейморком это всё равно придётся делать самому
У меня это работает из коробки в симфони. ЧЯДНТ?
Цитата Сообщение от sash Посмотреть сообщение
попутно исправляя его специально замученные баги ( с индекс.пхп ну это вообще днище..
Можно уже раскрыть этот загадочный баг?
Цитата Сообщение от sash Посмотреть сообщение
Навалили кучу, а вы гребитесь в этом как хотите
Для меня куча это код выше. Без документации он не несет мне никакой информации.

Ок, я хочу увидеть что мне надо записать в этот массив, чтобы получить следующее
Хорошо, например я хочу на сделать следующие роуты:
GET /api/post?page={page}&per_page={per_page}
GET /api/post/{id}
POST /api/post
PUT /api/post/{id}
DELETE /api/post/{id}
get запросы могут делать все, остальные пользователи группы ROLE_ADMIN
оканчиваться они могут на .json и .xml, по-умолчанию формат json. Соответственно если формат json - данные приходят в json, отдавать надо в json, если xml то соответственно в xml. Такой простой REST API получился. Встречается повсеместно.
Ну и покрыть тестами хочу.
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
09.10.2017, 01:43
Jewbacabra,
на /api/post?page={page}&per_page={per_page}
PHP
1
  '^api\/post\?page=(\d+)&per_page=(\d+)$' => 'get/index/$1/$2' // ловит  функция actionIndex в getController с передачей  двух параметров
Решения кого пускать а кого нет может принимать функция-экшн. Тестами сам покроешь, я таким не занимаюсь.

Цитата Сообщение от Jewbacabra Посмотреть сообщение
Можно уже раскрыть этот загадочный баг?
Смотрел лару и уии. Индексный файл сайта находится не в корне сайта, а в какой-то папке. Сайт изначально доступен по /web/ а не по /
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
09.10.2017, 01:53
Цитата Сообщение от sash Посмотреть сообщение
на /api/post?page={page}&per_page={per_page}
Не вижу где указан метод - GET. POST, PUT, DELETE не должны работать на этом урле. page и per_page могут отсутствовать и в этом случае должны быть заменены на значения по-умолчанию, их порядок может быть любым. Различных входных форматов не увидел
Цитата Сообщение от sash Посмотреть сообщение
Решения кого пускать а кого нет может принимать функция-экшн
Не хочу мешать бизнес логику с маршрутизацией.
Цитата Сообщение от sash Посмотреть сообщение
Тестами сам покроешь, я таким не занимаюсь.
Я был уверен что не занимаешься. Намек был на то, что код должен быть тестируемым.
Цитата Сообщение от sash Посмотреть сообщение
Смотрел лару и уии. Индексный файл сайта находится не в корне сайта, а в какой-то папке.
Никакой это не баг. Нормальная практика - размещать весь код приложения выше корня веб сервера. В корне только статика и точка входа.
Цитата Сообщение от sash Посмотреть сообщение
Сайт изначально доступен по /web/ а не по /
Из вышесказанного следует что web в урле не будет.

В общем пока не столкнешься с проектом сложнее блога и небольшого ИМ не оценишь все ништяки которые предоставляет нормальный фреймворк.
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
09.10.2017, 02:06
Цитата Сообщение от Jewbacabra Посмотреть сообщение
не оценишь все ништяки которые предоставляет нормальный фреймворк.
Этого не будет никогда, я уже понял по себе.. Эти все ништяки я думаю смогу реализовать не хуже и значительно быстрее чем разбираться в ихнем немецком + получу удовольствие от процесса реализации и бесценный опыт. Я седею и бледнею от этих тонн чужого кода
Цитата Сообщение от Jewbacabra Посмотреть сообщение
Не вижу где указан метод - GET. POST, PUT, DELETE не должны работать на этом урле. page и per_page могут отсутствовать и в этом случае должны быть заменены на значения по-умолчанию, их порядок может быть любым. Различных входных форматов не увидел
Давай аванс, и всё увидишь
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
09.10.2017, 03:23
sash, если не секрет, сколько тебе лет?
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
09.10.2017, 03:26
andr-xw, тебе зачем?
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
09.10.2017, 03:39
sash, ну из твоих постов я сделал вывод, что перед тобой не стоит насущной проблемы зарабатывать себе на хлеб, у тебя дофига свободного времени и ты можешь тратить его на то, что тебе просто интересно. И если предположить, что ты школьник, или в крайнем случае студент, который живет с родителями, которые тебя содержат - то все складывается)))

Ну или ты просто очень толстый троль, такого варианта тоже нельзя исключать)))
0
 Аватар для sash
89 / 87 / 49
Регистрация: 09.10.2014
Сообщений: 571
09.10.2017, 14:45
andr-xw, Всё ещё хуже.. Тот неловкий момент, когда мама срывает с меня одеяло, а у меня стояк.. А мне ещё колготки в садик одевать
0
123 / 77 / 33
Регистрация: 05.03.2013
Сообщений: 449
09.10.2017, 15:02
sash, даже не знаю, радоваться мне или сочувствовать...
0
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
09.10.2017, 16:32
Цитата Сообщение от sash Посмотреть сообщение
Друг мне рассказывал за чела
Цитата Сообщение от sash Посмотреть сообщение
Очень сильно сомневаюсь
Цитата Сообщение от sash Посмотреть сообщение
Эти все ништяки я думаю смогу реализовать не хуже
Теоретики такие теоретики. Каждый ваш пост буквально пропитан слухами, неуверенностью и фантазиями.

почему индексный файл сайта находится не в корне сайта
Чтобы веб-сервер не имел доступа к исходникам. Это проще и надежней чем писать кучу ограничений.
Чудовищная мешанина html и php кода в файлах шаблонов.. Просто жуть.. Cами гляньте если есть лишнее здоровье. Кругом применяются какие-то хелперы (??? сами ж мы не знаем как экранировать тэги, да ???
1) Да, новички не знают.
2) Если у вас есть гениальное решение с экранированием без написания хелперов, поделитесь.
3) Зачем свои хелперы, когда есть готовые. В 99% случаях их достаточно.
Вообще экранирование это мелочь. Вы попробуйте наследование шаблонов написать. Вот это реально полезная штука.
Роуты не на регулярных выражениях
В laravel на регулярках. Плюс куча других фишек.
И они лежат не бог знает где и добавление новых - дело пяти минут. Конечно, проявив адское терпение и выучив всю документацию, вы сможете и сами каким-то чудом на этой телеге такое же реализовать, но спросите себя, а зачем, если у меня то же самое, тот же паттерн MVC, только гибче и понятнее..
В laravel они лежат в файле routes и добавление новых - дело пяти секунд.
Документацию всю учить не нужно. Вы же не учили документацию php на 100%?
Если знаний маловато, то это еще больший плюс, т.к. это опыт... "Опыт" - с большой буквы, который никакой фреймворк вам не даст
Опыт написания велосипедов в большинстве случаев не востребован. Заказчику нужно решение конкретных задач, а не создание еще одного движка. Если вы не способны осилить документацию и использовать готовые решения это чисто ваш косяк, именно вы теряете большую часть рынка.
Даже самому файлы js и css вам не дадут подключить по-нормальному, их нужно объявлять в каждом шаблоне, регистрировать блоки кода если хотите на отдельной странице что-то изменить к примеру. Ну вот спрашивается, ну зачем передавать в php через heredoc кусочки js или css-кода?
Я не знаю где вы откапываете подобное. Наверное специально ищите какие то специфичные и узкоспециализированные вещи. В большинстве фреймворков есть возможность подключить js и css через обычные html теги.
Всё равно вам нужно писать свои контроллеры, виды и свои модели, однозначно
Не однозначно. Laravel позволяет написать весь код прямо в файле роутов. Костыль да, но иногда очень экономит время. А потом можно отрефакторить.
В общем, вас загоняют, вернее, вы сами себя обречёте если за это уцепитесь, в жесткие рамки
Кто загоняет? Фреймворк выбирается под решение определенного круга задач. Это не панацея. Если вы не способны выбрать грамотный инструмент это опять же чисто ваш косяк.
полёт фантазии и свою гибкость ума спрячьте
Полет фантазии можно проявить в решении бизнес задач.
А вот если случайно что-то вы там в их файлах испортите, вы это потом найдёте, поправите, как вы думаете?
1) Да, было пару раз за 4 года. Я нашел и исправил. Хотел даже fork/PR сделать, но оказывается разработчики сами это поправили в новой версии.
2) Все зависимости фреймворка лежат в отдельной папке и при желании можно легко и быстро скачать заново.
3) Любые изменения фиксируются системой контроля версий. Отменяются одним кликом.

А вот пиша свою структуру сайта самостоятельно в зависимости от задач и используя нужные библиотеки, вы
1)Получаете замечтательную гибкость своего творения, возможность без проблем изменить или удалить всё что душа пожелает, ведь вы всё сами писали, всё вам известно в своём детище
2) Колоссальную экономию времени, раз поняв и воплотив в жизнь паттерн, его реализацию с соответствующими корректировками вы будете применять тем же методом копировать-вставить и заниматься творчеством дальше, а не офигевать от чтения томов документации
3)Уверенность в качестве своего движка (если он качественный конечно)))
4)Ну и наконец, просто радость от процесса решения задач самостоятельно, эта работа должна приносить удовольствие
1) С фреймворками все тоже самое. Код самого фреймворка не считается, вы же не пытаетесь изменить сам PHP? А он тоже не идеальный.
2) "копировать-вставить" и "творчество" явно не совместимые понятия.
3) Допустим вы уверены в своем движке. А другой человек? Например принесет заказчик написанный вами проект другому программисту, а тот в ответ "тут ничего не понятно, надо переписать с нуля" и будет делать абсолютно тоже самое но на своем движке, т.к. только в своем движке он уверен.
4) Радость понятие субъективное. В начале пути я любил копаться в коде и писать велосипеды. Потом я абстрагировался от конкретных инструментов и начал мыслить проектами - главное решить задачу. Сейчас же и это начинаю перерастать, пора работать на себя, а не на дядю.
Есть те, кто ездит на машинах, а есть те, кто плюс ко всему, разбираются в её устройстве. Вы, как обычный водитель, поломавшись на дороге, будете ждать эвакуатор или того, кто будет проезжать мимо и поможет вам
А давайте посмотрим на это с другой стороны. Пока вы учитесь чинить машины, другой человек изучает например финансовую грамотность. Пока вы чините машину, другой человек оставляет машину с личным водителем и уезжает на такси.
Когда вы изучаете фреймворки – вам нужно переучиваться переходя на новое решение, а они появляются постоянно, и большая часть вашего опыта стирается
Опять сплошная теория. Вы это делали? Я делал. Я писал на laravel, а потом попался проект на Yii, так вот я продолжил писать на Yii без всяких проблем. Я не учил документацию Yii. Пару раз заглядывал в нее из за каких-то специфичных функций, но это занимает времени не больше чем аналогичный поиск в документации по PHP.
Опыт не теряется даже при смене языка. Недавно пришлось впервые писать проект на node.js. Первый день я побаловался со своим движком, оценил затраты времени на изучение, плюнул и начал искать фреймворк. Нашел adonis.js, по сути аналог laravel но на node.js. Работал на нем как на родном, не зная толком ни node.js ни даже сам js.

Вы ж с форумов и с документации до конца своих дней не вылезете и в самом понимании процесса не продвинетесь ни на шаг
А вы вылезли смотрю. Вы на cyberforum меньше меня сидите, но при этом в 3 раза больше вопросов.
Все огромные проекты написаны ручками - ВК, Facebook.. Я даже не представляю всех тех мучений бедных хомячков если бы они стояли на фреймворках
Т.е. вы тоже пишите проекты масштаба ВК, Facebook? У вас 100500 разработчиков? Миллионы бабла чтобы оплачивать весь этот труд? Очевидно нет.

В конце у вас идет пример движка. Ок, смотрим.
1) В глаза сразу же бросается mainPages.sql. Т.е. миграций нет, надо ручками все запросы править?
2) Контроллер жестко связывается с одной моделью. Ну да, очень гибко. К слову, модель это не класс, а целый слой.
3) При обработке эксепшнов вижу echo "Ошибка конструктора". echo "Ошибка выборки из БД". Вы серьезно такое пользователю показываете?
4) Функционал очень скудный. Где валидация, авторизация, роли, очереди, кэш, нормальные логи, отправка на почту, ORM, поддержка консольных скриптов, поддержка разных БД и нескольких коннектов одновременно...да тот же csrf в 2 строчки. Где обещанное вами "один раз напиши и пользуйся своим проверенным"?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.10.2017, 16:32

Устранение избыточного кода
Здравствуйте! Есть некое подобие самописного MVC фреймворка. Простейшие контроллеры выглядят вот так: <?php namespace...

Как избавится от дублирования страниц в постраничной навигации в PHP
Здравствуйте. Подскажите как избавиться от дублирования тегов "title", "meta_d", "meta_k" в постраничной навигации. Адрес ссылки имеет...

Устранение пустого действия после if
Вот этот код меня устраивает, но мне кажется в первом условии тупо пустоты у нормального программиста не должно быть. Как этот код можно...

Дублирования поля
Есть таблица1, в ней 2 поля, как мне после заполнения поле1 скопировать содержимое поле1 в поле2 + поле3 из таблицы2?

Избавиться от дублирования
Как переписать функцию без дублирования кода "h x": f x | x > 0 = case g x of Just y -> Just y ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru