Neocaridina: Значимый вес - это когда фактор влияет на ранжирование сайта яндексом. Вебмастеру от яндекса больше ничего не надо, только быть в топе и иметь с этого трафик. Если яндекс поднимает сайт в топ 10 по запросу, будьте уверены, он понял его лучше остальных сайтов. Не просто "понял и так", а посчитал этот сайт лучше сотен остальных.
khodos_dmitry: из толкового посоветовал бы про очереди прочитать. Не вижу смысла запускать скрипт раз в секунду. Делаете скрипт, который висит в памяти и опрашивает в цикле раз в 5 секунд базу данных на наличие необработанных ссылок, если ссылки есть, берет пачку, запускает их обработку, после обработки помечает или обработанными или удаляет из базы. Если ссылок нет - ждет 5 секунд и смотрит в базу снова. Далее ставите на сервер supervisor и запускаете скрипт через него. Когда скрипт умрет от таймаута или переполнения памяти (а это обязательно случится, если вы собираетесь написать демон на php) - supervisor перезапустит его заново автоматом. Это самый простой вариант.
Neocaridina: Введите в яндексе "продвижение сайтов" и выберите московский регион. В топе на третьем месте (по крайней мере у меня и двух знакомых мне людей, надеюсь, если сделаете это, яндекс вам не перетасует выдачу) найдете сайт, домен руcинoв-сео, зарегистрированный в сентябре прошлого года с табличной версткой. Регион достаточно конкурентный, запрос тоже. Рядом с этим сайтом по этому же запросу в выдаче находится другой человек, рассказывавший некоторые детали об особенностях продвижения. Когда я вижу в топах молодой сайт на табличной верстке по высококонкурентному запросу (а это не единственный пример низкосортной верстки, который есть в топах), я теряю веру в то, что семантика хтмл5 имеет для яндекса значимый вес.
Neocaridina: простите, но если фактов нет, то о какой полезности можно говорить? Яндекс рассматривает содержание сайтов и поведенческие факторы, как главные критерии, а не то, верстали этот сайт блоками, табличками или новыми элементами. И доказательство конкретно этим словам есть - выдача яндекса.
Ибрагим Кадиров: Если вы дизайнер, почему вы решаете ,какой технологический стек использовать? Одна ваша фраза о том, что вы выбираете php вместо питона потому, что последний не заводится на хостинге говорит о том, что у вас нет даже начинающего специалиста, способного элементарно настроить сервер под приложение. Не то что способного оптимально настроить сервер под нагрузки - элементарно настроить на запуск приложения. Невозможно без спецов нормально сделать высоконагруженное, посовещавшись на тостере со "знатоками".
Алексей Сол: Если ваш проект такой маленький, то откуда у вас столько файлов? "Сейчас у меня есть много .php файлов с именами типа "like.php", "refresh.php", "spoiler.php"." Попробуйте slim framework, он вам даст удобный роутинг, а все остальное сможете овнокодить также, как и сейчас.
ushi: Да, офигенное решение с голосованием. Меня однажды одна бабенка в сообществе на fl.ru записала в кидалы и мне там карму слили в минус. А занесла только потому, что нашла в моем паблике (куда мой парсер скидывал все новые проекты с фриланс-площадок, подходящие под определенные условия) ссылку на задание на фл.ру и ее там кинули. У вас голосовать будут вообще левые люди, не имеющие отношения к ситуации, часто бездари и школьники, которым нечем заняться. Их мнение субъективно и часто основано на эмоциях, многие из них даже логику включать не умеют перед тем, как поставить плюс или минус. Достоверность переписок, проводимых на сторонних площадках - это ни разу не доказательство, я открою панель разработчика в хроме и за 5 минут составлю правдоподобный скрин с нашей перепиской, в которой вы меня кинули. Забудьте эту затею, ничего хорошего не сделаете. Я пилил пару лет назад плагин для хрома, который высвечивал надежность исполнителя или заказчика на fl.ru, он опирался на наличие темы с упоминанием ника человека в сообществе кидал. Потом закрыли сначала это сообщество, затем и вовсе отменили все сообщества - пруфы на кидал, а также все доказательства вины или невиновности пропали, а с ними и смысл плагина. Превращать это в сторонний ресурс не стал по той причине, что без пруфов на темы на оригинальной площадке это просто необъективно и недоказуемо. Ну и вишенка на торте - если вы выложите персональные данные кидалы, он либо заставит вас удалить их, угрожая вам полицией, либо пойдет к вашему хостеру, чтобы тот закрыл ваш сайт, пока вы не удалите их, либо если вы будете хоститься за границей кинет ссылку на вас в роскомназдор или сходит в какой-нибудь суд и вашу площадку просто заблокируют на территории РФ, потому что персональные данные должны храниться на российских серверах и не должны разглашаться направо и налево.
Причем тут арбитражники? Причем тут клики? если объявление показалось 1000 раз и по нему было 100 кликов, либо оно показалось 10000 раз и по нему было 200 кликов, вы считаете, что второе будет дешевле? Определения не путайте, если ответить решились.
junart: для начала удалите CategoryUser и AnnouncementCategory модели (но не таблицы). Совсем. Создайте Модель Category. У вас будет User, Category, Announcement.
$user->announcements() - как метод. Если зададите как атрибут модели, то при каждом обращении к user будут дергаться все эти таблицы, что не есть хорошо.
junart: эээ, вы уверены, что так надо? Зачем вам модели пивот таблиц без моделей самих сущностей? И зачем обращаться к связям и работать со связями через модели, если можно работать с самими моделями? Сделайте три модели: Announcement, User, Category, те таблицы, что у вас есть - это pivot таблицы для связи многие-ко-многим, а не самостоятельные сущности. Если вы хотите получить все категории пользователя, ваш метод categories должен возвращать belongsToMany(Category). Аналогично с Announcement (если же одна статья.... почему кстати announcement, а не article?... если одна статья может иметь только одну категорию, то тогда связь один ко многим вместо многих ко многим). Текущие таблицы ваши не удаляйте, они для пивотов как раз подойдут, но модели удалите. расставите связи между нормальными сущностями и увидите, что запрос, котоырй я в самом начале написал сработает. Можете его в метод модели User один раз вставить и затем вызывать в вашем коде что-нибудь типа $user->announcements