Jump to content
BulForum.com

PHP уеб платформи


Recommended Posts

Не разбирам защо сравнявате скриптов език със такъв който се компилира, например Java. Аз лично до ден днешен не съм чувал за уебсайт писан изцяло на Java - може би съм назад с материала :bgrin:

 

Но трябва да призная, че за едно нещо сте прави - слабото типизиране на езика дава свобода, с която доста хора наричащи себе си програмисти злоупотребяват и започват да пишат неподреден, неугледен и труден за поддържане и разбиране код.

 

Не съм съгласен все още със твърдението, че е непосилна задача да се пишат сложни/сериозни проекти на PHP.

 

@tedy, относно .NET framework-а и различните PHP frameworks мисля че се подразбира, че ако работиш например само със Zend Framework за PHP - ти ще разбираш и ще можеш да работиш със проекти писани на него със същото удобство с което работиш с други проекти писани на .NET.

 

Бъгчето което си намерил със foreach() е интересно, на мен не ми се е случвало, може би защото главно работя със индексирани масиви и не ми се е налагало да проверявам от какъв тип ми е индекса, защото е зададен като стринг при самата дефиниция на масива. Интересното е, че явно не са го репортнали като бъг, защото на моето PHP 5.2.5 въпросния бъг го има и следния код работи точно както ти спомена:

 

$masiv = array('0' => '1', '1' => '2');

foreach ($masiv as $k=>$v) { var_dump($k,$v); echo "<br>\n"; }

Резултата е:

 

int(0) string(1) "1"

int(1) string(1) "2"

Докато би следвало да е:

 

string(1) "0" string(1) "1"

string(1) "1" string(1) "2"

 

@djadomraz, не ти разбрах въпроса? Какво имаш в предвид под 'backend написан на C++'? Административна ареа на уеб сайт за онлайн търговия или на форум написан на C++ не съм чувал :)

Link to comment
Share on other sites

  • Replies 119
  • Created
  • Last Reply

Ами и на мен ми се случи за пръв път, и бих казал, че няколко часа търсех проблема, без изобщо да съм предполагал, че ще е точно там :) . Още съм с 5.2.0. Явно няма и да го оправят, все ми е едно.

Щом го знам, поне за в бъдеще ще внимавам, то доста станаха нещата, за които трябва да внимава човек, но и затова е опитът де.

 

Дядомраз имаше предвид нещо, за което стана дума мисля по-напред в темата, за Google или Yahoo, забравих вече.

Ако Google ползват PHP, то то едва ли е за цялата си система. В смисъл самото търсене в базите, управлението им (логиката) и т.н. вероятно са писани на С.

Т.е. не става дума за админ ареа или подобно. Един вид скриптовете отзад си вършат работата с извикване на С модули или нещо такова. Едва ли разчитат на PHP за тежката работа.

 

Не разбирам защо сравнявате скриптов език със такъв който се компилира, например Java. Аз лично до ден днешен не съм чувал за уебсайт писан изцяло на Java - може би съм назад с материала biggrin1.gif

Това не го разбрах. Сайтът, освен с Джава, ще има и HTML, CSS и т.н. Това се подразбира. За интерфейса. Останалото може да си е само Java, както и само PHP.

 

Аз лично не съм твърдял, че е непосилна задача (е, може да съм подхвърлил преди, но съм се поправил) за големи проекти с php. Просто предвид всички недостатъци, е далеч по-разхвърляно и трудно да се управлява с него подобно нещо. Сега въвеждат namespaces, класовете още не са това което трябва да са и т.н. :)

Link to comment
Share on other sites

  • 4 weeks later...

Един въпрос малко в страни, ама все пак е за php. Въпроса ми е какво аджеба трябва да пипна в php.ini за да тръгне поддръжката на mysql 5? Версиите и на двете са свалени днес. Апачето е 2.2, php-то върви, пуснах си поддръжка за Interbase, но за Mysql не ще да захапе. Откоментирал съм и двата реда :

extension=php_mysql.dll

extension=php_mysqli.dll,

копирал съм библиотеката на Mysql в директорията на php, и не ще. А IB тръгна без проблем :confused

 

Edit

Трябвало да копирам libmysql.dll в windows папката. :huh:

А аз се счупих да тествам всякакви варианти и прочие

Link to comment
Share on other sites

Нищо не копираш в windows папката.

Отдавна вече не се препоръчва да се копира нещо някъде извън пхп директориите.

Прочети хубаво install.txt на PHP дистрибуцията, в която даже си влиза libmysql.dll библиотеката.

Сетваш 1-2 environment variables w windows, и правилно всичко в php.ini, друго не ти трябва ;)

Link to comment
Share on other sites

Само така тръгва. И пътя до рнр директорията съм задал в path на windows, и пробвах да копирам libmysql.dll при php_mysql.dll в ext директорията и обратно да сложа php_mysql.dll в основната на рнр - неще. Само ако копирам libmysql.dll в windows-а тръгва :ph34r:

И на мен ми е странно това с копирането, защото досега не помня да съм го правил така.

Самото php го слагам от архива, който им е на сайта, не използвам инсталатор.

Link to comment
Share on other sites

При мен последните 2 години като съм слагал разни версии, вече не съм копирал нищо никъде и винаги работи отлично и от раз. Самата дистрибуция си съдържа в пхп директорията libmyqsl-a.

Последно сега съм с 5.2.6.

Но го ползвам само с IIS от години. Като FastCGI последно. Преди беше като модул.

Обаче не вярвам за Apache да има някакви различни инструкции в това отношение, все пак не съм чел детайлно инсталацията за Apache.

Нещо някъде бъркаш, някоя тъпа грешка, която ти убягва някъде.

Link to comment
Share on other sites

Apache 2.2.9 openssl

Настройките за рнр в него са:

PHPIniDir "d:/web/php5"
LoadFile "d:/web/php5/php5ts.dll"
LoadModule php5_module d:/web/php5/php5apache2_2.dll

.....

<IfModule dir_module>
DirectoryIndex index.php
DirectoryIndex index.htm 
DirectoryIndex index.html 
DirectoryIndex default.php 
DirectoryIndex default.htm 
DirectoryIndex default.htm
</IfModule>

....

ScriptAlias /php/ "d:/web/php5/"

....

Action application/x-httpd-php /php/php-cgi.exe

...

<IfModule mod_mime.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>

 

в php.ini



[code]extension_dir = "D:\Web\php5\ext"

....

extension=php_mysql.dll
extension=php_interbase.dll[/code]

 

В windows на path съм добавил d:\web\php;

 

Сега си направих един тест - преименувах dll файловете в windows\system32 на firebird и след рестарт на Apache-то нито едното нито другото се появява. Тръгват само ако dll файловете им са в windows :confused

Иначе Apache си работи с рнр, само дето самото рнр неще да сработи с базите данните.

Link to comment
Share on other sites

едно време се налагаше да се копира един phpts.dll или нещо подобно в c:/windows/system{,32}

иначе се зарежда само

 

LoadModule php5_module /path/to/dll/php5apache2_2.dll

 

прочети внимателно install.txt стъпка по стъпка!

Link to comment
Share on other sites

ама на мен apache + php ми върви!

PHP-то не ще да захапе поддръжката на Mysql и Interbase/Firebird ако не копирам libmysql и gds32/fbclient dll-тата в windows-а. Липсва ми функционалността (освен ако не ги сложа там де) за връзка с базите данни.

При мен излезе, че в момента тръгват само ако разхвърлям съответните dll-ta по папките на win-a.

Link to comment
Share on other sites

....

В windows на path съм добавил d:\web\php;

...

Я пак погледни какво си добавил в path :)

ПХП-то не беше ли в D:\web\php5?

Поне според това, което си показал в кода по-горе.

Link to comment
Share on other sites

Тъй и тъй си тръгнал да гледаш - провери и directory security-то на въпросните директории за да не би да са ограничени някак user-ите които имат права да "гледат" какво има вътре.

Link to comment
Share on other sites

@Теди пътя е php5 - грешно съм го написал в горния пост.

@Дядо Мраз - компютъра го използвам само аз - не съм слагал ограничения по групи, потребители или други неща.

При вас в windows или system32 нямате ли сложено копие на libmysql? Т.е върви си и без да копирате нещо някъде? Да не би ако сте използвали някой инсталатор, да ви е шибнал файла там без ваше знание?

 

Edit:

Друго решение изскочи с копирането на libmysql.dll в bin папката на Apache-то,вместо в windows.

Link to comment
Share on other sites

Никога не съм ползвал инсталатори за PHP.

Не съм и копирал нищо никъде. Но както казах, ползвам го само с IIS, Apache не ща да чуя вече под Windows.

Дори на dedicated сървъра, който скоро правихме, сложихме Lighttpd. Но тва под Gentoo, както и да е.

Виж пак прословутия path дали си го сетнал в System variables, a ne w User.

Рестартира ли компа за всеки случай?

И все пак каква грешка дава иначе, виж логовете на php-то.

С Apache нe знам, погледнах в install.txt, но не видях нещо по-различно като изисквания.

Ако пък работи така, остави го и не го бутай повече.

Можеш да се опиташ да ползваш IIS, аз с Apache pod Win съм имал само проблеми.

Link to comment
Share on other sites

@Дядо Мраз - компютъра го използвам само аз - не съм слагал ограничения по групи, потребители или други неща.

 

Ти не си но понякога се случва - разархивирам нещо в root-a на диска с WinRAR и изненада - за въпросната директория права има само usera с който работя в момента.... Та като ти казвам да провериш не е колкото да си почеша пръстите в клавиатурата...

Link to comment
Share on other sites

След като пуснах използване на разширените настройки за сигурността в Windows-a правата към администраторите(мен) бяха пълни, към създателя имаше право да чете - дадох пълен достъп - да модифицира и т.н права върху папката и пак не ще. Това след рестарти и т.н Майната му - оставям го с dll-a в дир-а на апача. Така поне работи, пък и това не е върху машина, която ще се използва от друг или от вън. Важното е да върви.

Link to comment
Share on other sites

  • 1 month later...

Здравейте на всички ,

вчера по време на работа ми се случи нещо доста интересно . Трябваше с DOMDocument да обираме контента на дадени уеб страници , интересното стана когато трябваше да съберем неща от български страници , съответно си зададохме в конструктора ,че искаме документа да се енкодва с utf8 . Да , но когато направих var_dump на DOMDocument::loadHTML() метода заедно с контента в него , се оказа ,че всичко е на маймунки . Интересното е ,че когато сложих мета тага за charset на първо място всичко тръгна перфектно , разместят ли се нещата и става омазвация . Помотах се 10-15 мин и разгледах в php.net коментарите , там се оказа ,че има решение за проблема и той се нарича mb_convert_encoding , от което се появиха още неприятности ,но това за момента няма значение . Та ,ако ви се случи подобно нещо имаите впредвид този факт ( за момента не е fix-нато ) .

 

Поздрави.

Link to comment
Share on other sites

Здравейте ,

имам едно въпросче . Знаете ли дали когато се ползва memcache има значение скоростта на рам паметта или значение има само обема й ?

 

Поздрави.

Link to comment
Share on other sites

Като всеки кеш, и тук е същото. Кеш по принцип се прави заради едно нещо: Скоростта на кеша е по-голяма от тази на това, от което се кешира.

 

В този смисъл е излишно да казваме, че скоростта на паметта е важна :) . А големината ѝ допринася за повече кеширани данни, и в зависимост от общия постигнат КПД (или hitrate), увеличаването ѝ не довежда до особен прираст в производителността. Това само с проба може да се определи за съответното приложение.

 

Освен това виж дали и query_cache-то на mysql-а е включено с достатъчна големина. На един наш сървър примерно, с busy сайт (скоро ще станат 3 такива сайта), съм дал 32 МБ query cache, и изненадващо, към 46% hitrate имам. Увеличавайки го, не видях промяна.

Link to comment
Share on other sites

  • 2 weeks later...

PHPUnit , днес четох доста по въпроса и все пак оставам със смесени чувства ( най-вече заради различните мнения ) и , тъй като е интегриран framework в Zend Studio For Eclipse останах очарован от начина по който написва всичкия код който трябва да се пише ( в противен случай ) на ръка . Въпроса ми е дали някой е интегрирал такъв ( или подобен примерно JUnit) framework във всекидневния процес на работа ? Напоследък ми се случи доста често да получавам неправилни резултати поради непълни тестове на даден алгоритъм , особено интересно става когато напишеш ( допълниш ) нещо ново и незнаеш дали всичко ще остане както трябва . Мнения по въпроса ? :)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...