LINUX.ORG.RU

я у мамы php

 ,


0

2

привет друзья. я наверно замучил этот раздел своими глупыми тредами, но мне надо. уже как-то грозился написать php-бложек в один файл, и дело не стоит на месте.

мне просто интересно, может кто какое напутствие даст. пишу я блог для себя, типа подарок самому себе на ДР будет, так что любой критике и предложениям буду рад, чтобы «сделать хорошо».
альзоу, я буду рад, если кому-то этот пост покажется полезным и он решит использовать блог для себя, и буду еще более рад, если вы скажете, какой функционал должен быть в эталонном блоге? может, сделать лайки/дислайки, или может прикрутить древовидную структуру статей, или может... чего? накидайте нескучных идей позязя. =)

и так, поехали. блог на php, в качестве базы используется sqlite. пишу я на php впервый раз, левой ногой через правое плечо.

возможности блога:

  • дизайн говно
  • регистрация пользователей
  • админ-панель для управления записями
  • Человеко-Понятные УРЛы
  • создание постов и отправка комментариев к ним :)

выглядит структура файлов так:

/srv/http/sites/spfng.com
 |- w3/       (корневая директория веб-сайта, пустая)
 |- app.php   (блог в один файл)
 |- cc.php    (cc = command centre, командный центр - админ панель. да, я фанат StarCraft :) я вообще сперва обходился аналогом phpmyadmin (phpliteadmin), но удобства для пришлось говнокодить админку. отдельным файлом - чтобы говнокод лежал отдельно)
 `- db.sq3    (база данных)

настройка сервера nginx:

  server {
    listen 80;
    server_name spfng.com;

    root /srv/http/sites/spfng.com/w3;
    index default.html;

    charset utf-8;

    location @php {
      fastcgi_pass unix:/run/php-fpm/php-fpm.sock;

      fastcgi_param SCRIPT_FILENAME /srv/http/sites/spfng.com/app.php;

      include fastcgi_params;
    }

    try_files $uri $uri/default.html @php;
  }
как вы видите, из корневой директории возможна отдача только статичного контента, и если запрашиваемого файла не существует, тогда все запросы идут к единственному app.php который лежит вне корневой директории сайта. это нужно для работы ЧПУ.

Скачать бесплатно, без регистрации и SMS:

работает просто. заходим на «сайт/», и нас редиректит на «сайт/blog/» (потому что здесь находится блог, да).

заходим на «сайт/signup/» и можно создать аккаунт. но при первом запуске скрипта аккаунт уже создался, так что заходим на «сайт/signin/» и авторизируемся с логином admin паролем admin. можно пройти на «сайт/signoff/» и завершить сессию.

заходим в админку «сайт/cc/» и оттуда можно добавить новые записи, которые появятся на главной блога. указать ЧПУ к статье, зайти прочитать статью «сайт/blog/friendly-url/» и оставить к ней комментарий.

тащем-та все. для тех, кому на все это пофиг и просто хочет чтоб ему картинку нарисовали, - скриншоты =)
и да, дизайн как писал говно - его нет в «релизе», но у меня он есть, как видно по скриншотам.

админка: список записей
админка: создание, редактирование
блог: список записей
блог: чтение записи и комментариев

★★★★★

Неплохо для среднестатистического двачера.
Хочу себе что-то похожее запилить, только не на PHP.

CYB3R ★★★★★
()

Дизайн самого бложе - имхо лютое Г!
Но за то, что сам пишешь - здоровенный плюс, я даже завидую тебе чуток, т.к. сам только со статикой маюсь.

btw, это ЛХ или уже опять переделываешь? (http://spfng.com/blog/) не арбайтен.

ossnewcomer
()

а можно свой стыд тоже запостить? :)

ossnewcomer
()

предложениям буду рад, чтобы «сделать хорошо».

посмотри как сделана sNews

q11q11 ★★★★★
()

а мне стыдно свой а-ля no-ip.org выкладывать по второтежным причинам

minakov ★★★★★
()

Может, осилишь гитхаб? А тесты где? Логика и представление в одной куче, постгрес не поддерживает... Эталонное ненужно прямо-таки. Но за старания зачет, да.

drakmail ★★★★
()

Умей ты это лет так 10 назад, как сыр в масле катался бы.

varchar
()

Похвально, но дизайн говно конечно =]

neocrust ★★★★★
()
Ответ на: комментарий от Ubuntu1210

alwaysdata.com - халявный php5.3/python2.6-3.3/ror(не пользовался ни разу)|mysql/postgre|+пара нереляционных|ftp/ssh - правда места около 20-30 мб (кажется), но больше для таких проектов и не надо + домен третьего уровня на alwysdata.net.

рикамендую.

anonymous
()
Ответ на: комментарий от drakmail

База sqlite – это файл на НЖМД, бака. Это не сервис. Sqlite понимает в качестве входного языка некий обрубок ANSI SQL, но для CRUD и джойнов его более чем достаточно. Кроме того, cli-утилиты, идущие в комплекте, обладают недостающим функционалом, чтобы удовлетворить твою потребность в написании достаточно хитровыебанных запросов, которые ты бы мог пускать по крону (для CRUD и работы сайта эти утилиты не нужны, хватает стандартного SQL), PHP в своём PDO также имеет поддержку sqlite, так что на уровне БД можно переключать базы с sqlite на мускул, постгрес, хоть куда. Её часто используют там, где нет 10000 хитов в секунду, или на стадии разработки, потому что просто и удобно. И естественно, она не требует каких-то громоздких морд для управления, у меня например стоит аддон для FF.

Deleted
()
Ответ на: комментарий от Deleted

Глупенький, я знаю, что такое sqlite. Уже кучи времени с ним работаю. Но на куче хостингов php с sqlite тупо не работает. Например, в RHEL/CentOS/Fedora php из коробки скомпилен тупо без sqlite.

Алсо, с постгресом, как оказалось, работать не намного сложнее, чем с sqlite. Тупо create user username with password 'somepassword' и потом create database db_name with owner username.

fargred

или на стадии разработки, потому что просто и удобно.

Что потом выливается в различное поведение на development и staging. Знаем, проходили. Еще один повод не страдать фигней и настроить 1 раз постгрес.

drakmail ★★★★
()
Ответ на: комментарий от drakmail

Что потом выливается в различное поведение на development и staging. Знаем, проходили. Еще один повод не страдать фигней и настроить 1 раз постгрес.

кстати да. Ну или mysql, по которому в интернетах Over9000 мануалов, особенно в связке с php. ИЧСХ по-русски.

Ну а sqlite не годен даже для бложика на который может зайти хоть кто-то, кроме автора. Просто не предназначен изначально. И это не баг, а фича.

drBatty ★★
()
Ответ на: комментарий от drBatty

Ну а sqlite не годен даже для бложика на который может зайти хоть кто-то, кроме автора.

http://www.sqlite.org/whentouse.html
SQLite usually will work great as the database engine for low to medium traffic websites (which is to say, 99.9% of all websites). The amount of web traffic that SQLite can handle depends, of course, on how heavily the website uses its database. Generally speaking, any site that gets fewer than 100K hits/day should work fine with SQLite. The 100K hits/day figure is a conservative estimate, not a hard upper bound. SQLite has been demonstrated to work with 10 times that amount of traffic.

шах и мат, атеисты

Spoofing ★★★★★
() автор топика
Ответ на: комментарий от Spoofing

Generally speaking, any site that gets fewer than 100K hits/day should work fine with SQLite.

во первых дело не в хитах. Ты можешь поднять сайтек, который просто отдаёт странички по запросу, из своей БД. Это другое. В бложек вообще-то пишут ещё. Кроме того, юзер может регится, и получать ещё какие-то возможности, которые меняют базу (лайки ставит к примеру, выбирает любимые теги и т.д.).

во вторых, это всё конечно можно сделать и на sqlite, и даже вообще без всяких СУБД, массивами на php и/или файлами. Дело не в том, что можно, дело в том, что нормальная СУБД УЖЕ под такое заточена, что Over9000 придурков ВНЕЗАПНО захотят поменять одно и то же. Причём по разному.

шах и мат

забил гвоздь отвёрткой? Молодец, ты силён и ловок.

drBatty ★★
()

Сочетание «своего бложега» с «только для зарегистрированных пользователей» изрядно повеселило...

no-dashi ★★★★★
()
Ответ на: комментарий от no-dashi

это еще что. регистрация будет только по инвайтам! :)

но это из-за закона о блокировке сайтов. модерировать сообщения 24/7 у меня нет ни желания, ни возможности, поэтому свободно писать в блог смогут лишь доверенные лица (если такие будут, друзей-то нет, но вобщем такая задумка).

анонимные комментарии возможно и будут (после аппрува), но пока не уверен.

Spoofing ★★★★★
() автор топика
Ответ на: комментарий от ossnewcomer

прежде всего, для себя же пишу. =)

сейчас занимаюсь преждевременной оптимизацией: планирую, «как было бы сделать лучше» чтобы не столкнуться с этим законом и прочей ересью, а как оно будет на самом деле - не знаю точно.

и писал же, что

любой критике и предложениям буду рад, чтобы «сделать хорошо»

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

на гитхаб конечно же выложу, в день релиза (дня рождения), а сейчас оно еще в процессе написания. :)

Spoofing ★★★★★
() автор топика
Последнее исправление: Spoofing (всего исправлений: 1)
Ответ на: комментарий от drakmail

Но на куче хостингов php с sqlite тупо не работает. Например, в RHEL/CentOS/Fedora php из коробки скомпилен тупо без sqlite.

Энжой ёр говнохостинг.

Алсо, с постгресом, как оказалось, работать не намного сложнее, чем с sqlite.

Если тебе постгрес нужен для

Тупо create user

и для бложека на одно лицо тебе нужна RHEL, то где-то там вдали наверно есть ещё требования к персональной АЭС, чтобы питать дата-центр. Для бложека.

Что потом выливается в различное поведение на development и staging.

Писать надо на стандартизированном SQL, если вы шпарите без обёрток.

Deleted
()
Ответ на: комментарий от Spoofing

я в PHP не втыкаю. Статика... Мне не впадлу редактировать.
Да и вот всегда, хочешь минималистично - а вырастет монструозное ненужно.

ossnewcomer
()
Ответ на: комментарий от Deleted

Энжой ёр говнохостинг.

Скорее enjoy your SQLite.

Если тебе постгрес нужен для Тупо create user

А, ты постгрес в глаза не видел, и думаешь, что это такой энтерпрайзный огромный тормозной монстр? :D То, что я привел - это запрос для добавления роли в базу данных, что-то вроде:

create database somedb;
grant usage on *.* to someuser@localhost identified by ‘somepassword’;

имхо, постгрес гораздо понятнее.

и для бложека на одно лицо тебе нужна RHEL, то где-то там вдали наверно есть ещё требования к персональной АЭС, чтобы питать дата-центр. Для бложека.

Мне для бложка хватает jekyll и абсолютно любого хостинга. Так как статика. RHEL и персональная АЭС нужна личностям вроде тебя и ТС, который обычный унылый блог пишут на, кто бы мог подумать - php. Надо иметь достаточно большой фантазии для этого.

Писать надо на стандартизированном SQL, если вы шпарите без обёрток.

А если с обертками? А ты знаешь, что, например, размер ключа индекса в MySQL ограничен, в то время, как в SQLite нет?

drakmail ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.