Dreammaker, а как на счет Symfony?
мне он что-то не понравился... как-то Zend Framework лучше смотриться и понимается
(мне Symfony советовали как-то, по этому ломал голову)
забыл отписатся, сделал...!
я поменял append на prepend
пробелов этих не стало...
(я это раньше пробовал, но видимо зафтыкал, тогда...)
есть очень маленький пробел, но его почти не видно... вродебы...
./telepatd start
chown -R www:www /путь/к/joomla
и как рекомендовали:
или в php.ini
владелец какой? (для разные настроек должен быть один владелец www:www или владелец для cgi/fcgi пользователь) и права на файлы 666 750 (и/или больше)?
ну я написал как раз что не для спора, а именно толкунуть идею ТС, чтобы его ядро получало url /blog/user/*/view/*/* ( /blog/user/1/view/22/333 ) и чтобы "толкало" ("диспатчиризировало", dispatch) между классо(а)м(и)
в данном случае класс blog и методы user и view (или алиасы) и количество параметров в них соответственно '1' '22' '333'...
с Yii я не знаком, знаком с ним со всем не много, я читал полностью всю документацию по Symfony и Zend, и смотрел написанные на нем сайты, только на 100% не приходилось с ними двумя работать, к сожалению, попадались уже готовые движки написанные кем-то на php...
вы написали про таблицы и primary key, но тут имелось ввиду url путь /blog/user/*/view/*/* (с mod_rewrite или на прямую с apache)
извините, если забыл написать что это именно url
mendel, если чесно ничего не понятно, абсолютно... какой конфиг? по крайней мере я вижу около 'ньюз' вызвать 'ньюз2лог'...
кстате, не для спора, хотите посмотреть одну реализацию которую я увидел пару месяцев назад на perl'овом фреймворке?
распределенное ООП какое-то своеобразное...
записать так:
sub blog : Chained PathPart('blog') CaptureArgs(0) { } sub user : Chained('blog') PathPart('user') CaptureArgs(1) { my ( $self, $c, $id_un ) = @_; $c->stash->{ message } = "Hello "; $c->stash->{ arg_sum }->[0] = $id_un; } sub view : Chained('user') PathPart('view') CaptureArgs(1) { my ( $self, $c, $id ) = @_; $c->stash->{ message } .= "World!"; $c->stash->{ arg_sum }->[1] = $id; } sub view_page_off : Chained('view') PathPart('') Args(1) { my ( $self, $c, $page ) = @_; $c->stash->{ arg_sum }->[2] = $page; $c->forward( 'view_blog_message', [ @{$c->stash->{ arg_sum }} ] ); } sub view_off : Chained('view') PathPart('') Args(0) { my ( $self, $c ) = @_; $c->forward( 'view_blog_message', [ @{$c->stash->{ arg_sum }} ] ); } sub view_page_user : Chained('user') PathPart('') Args(1) { my ( $self, $c, $page ) = @_; $c->stash->{ arg_sum }->[1] = $page; # print '99'; $c->forward( 'view_blog', [ @{$c->stash->{ arg_sum }} ] ); } sub view_user : Chained('user') PathPart('') Args(0) { my ( $self, $c ) = @_; $c->forward( 'view_blog', [ @{$c->stash->{ arg_sum }} ] ); }
все вызывается по очереди и можно прицепить к $c->stash (т.н. виртуальному методу)
и методы будут вызыватся так, друг за другом, как роли... красиво получается
| Path Spec | Private |+-------------------------------------+--------------------------------------+| /blog/user/*/view/* | /blog/blog (0) || | -> /blog/user (1) || | -> /blog/view (1) || | => /blog/view_off || /blog/user/*/view/*/* | /blog/blog (0) || | -> /blog/user (1) || | -> /blog/view (1) || | => /blog/view_page_off || /blog/user/*/* | /blog/blog (0) || | -> /blog/user (1) || | => /blog/view_page_user || /blog/user/* | /blog/blog (0) || | -> /blog/user (1) || | => /blog/view_user |'-------------------------------------+--------------------------------------'
в других языках, такого не видел... сделать наверное можно, но саму идею такую даже ни где не видел...
кстате, а дамп чего? другую базу для файлов нельзя чтоли сделать?
с дампов будет криво?
ну и правильно, только зря спрашивали :)
frantic, а что мешает протестировать?
все уже есть, даже ничего изобретать не надо... но через FastCGI/CGI/Mod_php будет плохо (или очень плохо)...
кстате, а в каком режиме php? елси FastCGI может ситуация не много лучше будет...
pg-lo-read-all (или свою написать) pg-lo-create
пример из php.net:
<?php// --------- OPEN CONN --- $conn = pg_connect("host='127.0.0.1' dbname='test' user='usertest' password='passtest'");// --------- OPEN FILE --- $fp = fopen('logo.gif', "r"); $buffer = fread($fp, filesize('logo.gif')); fclose($fp);// --------- CREATE - INSERT OID --- pg_exec($conn, "begin"); $oid = pg_locreate($conn); $rs = pg_exec($conn,"INSERT INTO test(tipo, images) VALUES('A1', $oid);"); $handle = pg_loopen ($conn, $oid, "w"); pg_lowrite ($handle, $buffer); pg_loclose ($handle); pg_exec($conn, "commit");// --------- OPEN - INSERT OID --- $rs = pg_exec($conn, "SELECT images FROM test WHERE tipo = 'A1';"); $row = pg_fetch_row($rs, 0); pg_exec($conn, "begin"); $loid = pg_loopen($conn, $row[0], "r"); header("Content-type: image/gif"); pg_loreadall($loid); pg_loclose($loid); pg_exec ($conn, "commit");// --------- UNLINK OID --- pg_exec($conn, "begin"); $loid = $row[0]; pg_lounlink($conn, $loid); pg_exec ($conn, "commit");// --------- DELETE OID --- pg_exec($conn, "DELETE FROM test WHERE tipo = 'A1';");// --------- CLOSE CONN --- pg_close();?>
frantic, в PostgreSQL есть API для seek, чтобы бинарный файлик по байтово отдавать, но как вы будите его отдавать на веб?
или толкать прямо на страницу, или через врапер? :)
lo_lseek$loc = $dbh->pg_lo_lseek($lobj_fd, $offset, $whence);Changes the current read or write location on the large object $obj_id. Currently $whence can only be 0 (which is L_SET). Returns the current location and undef upon failure. This function cannot be used if AutoCommit is enabled.
т.е. лучше файлы или MogileFS
тут вот http://dbmail.org/ почтовый сервер на СУБД, там где-то рекомендовали исключительно PostgreSQL для храннения файлов (писем), если база большая, и там используються транзакции с InnoDB (по этому с файлами жестко), но и на веб-страницу там никто не отдает...