phpHypher
quittance.ru
документы
прочее

Особенности и преимущества phpHypher

Кон­фи­гу­ра­ци­он­ный файл опи­са­ния язы­ка. Мно­го­чис­лен­ные па­ра­мет­ры рас­ста­нов­ки пе­ре­но­сов для каж­до­го кон­крет­но­го язы­ка за­да­ют­ся ди­рек­ти­ва­ми в фай­ле опи­са­ния язы­ка, имя ко­то­ро­го яв­ля­ет­ся обя­за­тель­ным па­ра­мет­ром при со­зда­нии эк­зем­пля­ра объ­ек­та phpHypher.

Кеши­ро­ва­ние об­ра­бо­тан­ных сло­ва­рей со встро­ен­ным ме­ха­низ­мом про­вер­ки их ак­ту­аль­но­сти. В про­цес­се со­зда­ния эк­зем­пля­ра объ­ек­та phpHypher про­ис­хо­дит за­груз­ка и об­ра­бот­ка на­бо­ров пра­вил (пат­тер­нов) и дру­гих дан­ных, необ­хо­ди­мых для рас­ста­нов­ки пе­ре­но­сов. Про­цесс об­ра­бот­ки и оп­ти­ми­за­ции дан­ных за­ни­ма­ет до­ли се­кун­ды, но эти до­ли се­кун­ды мо­гут ока­зать­ся кри­тич­ны­ми для про­из­во­ди­тель­но­сти на­гру­жен­ной си­сте­мы. Поэто­му об­ра­бо­тан­ные дан­ные со­хра­ня­ют­ся для даль­ней­ше­го ис­поль­зо­ва­ния в файл, имя ко­то­ро­го за­да­но ди­рек­ти­вой compiled.

В даль­ней­шем об­ра­бо­тан­ные и оп­ти­ми­зи­ро­ван­ные сло­ва­ри бу­дут за­гру­жать­ся непо­сред­ствен­но из compiled-фай­ла с обя­за­тель­ным кон­тро­лем его ак­ту­аль­но­сти. В слу­чае по­те­ри ак­ту­аль­но­сти (или от­сут­ствия), compiled-файл бу­дет ав­то­ма­ти­че­ски об­нов­лен (или со­здан за­но­во) из ис­ход­ных фай­лов пра­вил.

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

Рас­ши­рен­ные на­строй­ки усло­вий пе­ре­но­са слов. Обыч­но си­сте­мы рас­ста­нов­ки пе­ре­но­сов в тек­сте поз­во­ля­ют за­да­вать три стан­дарт­ных усло­вия пе­ре­но­сов: огра­ни­че­ние сле­ва  ми­ни­маль­ное ко­ли­че­ство сим­во­лов, ко­то­рое до­пу­сти­мо от­де­лять от сло­ва спе­ре­ди; огра­ни­че­ние спра­ва  ми­ни­маль­ное ко­ли­че­ство букв, ко­то­рое мож­но пе­ре­но­сить на дру­гую стро­ку; огра­ни­че­ние по длине  ми­ни­маль­ная дли­на сло­ва, до­пус­ка­ю­щая пе­ре­носы.

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

Запрет пе­ре­но­са слов. Пере­но­сы не бу­дут рас­став­ле­ны в сло­вах, экра­ни­ро­ван­ных при по­мо­щи об­рат­ной ко­сой чер­ты "\" (код сим­во­ла 0x5C), ко­то­рая долж­на рас­по­ла­гать­ся непо­сред­ствен­но пе­ред пер­вой бук­вой экра­ни­ру­е­мо­го слова.

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

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

Дру­гие пре­иму­ще­ства: об­ра­бот­ка тек­ста в ко­ди­ров­ке utf-8 и во всех од­но­бай­то­вых; от­сут­ствие по­терь при пе­ре­ко­ди­ров­ках; вы­со­кая про­из­во­ди­тель­ность; от­сут­ствие за­ви­си­мо­сти от уста­но­вок си­стем­ной ло­кали.

18/06/2010
Добавить комментарий
Заполните форму, чтобы отправить свой комментарий. E-mail заполнять не обязательно, но имеет смысл, если Вы рассчитываете на ответ по почте. В любом случае, Ваш e-mail не будет опубликован.