პოსტები ტეგით “PHP”

STL: Simple Template Language Preview

დიდი ხნის პაუზის შემდეგ მინდა წარმოგიდგინოთ ერთი ახალი პროექტი რომელზეც გარკვეული პერიოდია ვმუშაობ. ჯერჯერობით ეს არის პრივიუ რელიზი რომელიც მალე საბოლოო ფაზაში შევა და სრულ დოკუმენტაციასა და მაგალითებს შესაბამისად წარმოგიდგენთ. მანამდე კი მისი ნახვა და გადმოწერა შეგიძლიათ შემდეგი მისამართიდან: STL Library.

რა არის STL? როგორც სათაურმა მიგანიშნათ ეს არის PHP – ზე დაწერილი მარტივი და მოქნილი შაბლონების ენა და ამ ენის პროცესორი. STL არის მარტივად გამოყენებადი შაბლონების ენა რომელიც არის საკმაოდ მარტივად ასათვისებელი თუ თქვენ გაგაჩნიათ ნებისმიერ მსგავს შაბლონების ენასთან სულ მცირედი მუშაობის გამოცდილებაც კი. მისი სინტაქსი წააგავს Django, Jinja2, Smarty და სხვა მსგავსი შაბნოლენბის ენებს.

ბიბლიოთეკას არ აქვს არანაირი დამოკიდებულება სხვა გარე ბიბლიოთეკებზე და PHP – ს სპეციფიურ მოდულებზე. კი არის სრულად ე.წ. standalone და მისი გამოყენება შეგიძლიათ ნებისმიერ PHP პროექტში. სრულად »

ტეგები: , , ,

PHP: Array Tricks Part 1

ამ პოსტს ჩემი ერთი მეგობრის თხოვნით ვწერ რომელთანაც გუშინ საუბარი მქონდა PHP – ს მასივებსა და for/foreach კონსტრუქციებთან მუშაობის შესახებ.

მასივები PHP – ს ერთერთი ყველაზე ძლიერი და განვითარებული მხარეა და შესაბამისად შეიცავს უამრავ ნიუანსს. ხშირ შემთხვევაში ასეთი ნიუანსები გამოუცდელი თუ გამოცდილი პროგრამისტების მიერ იგნორირებული რჩება და ამის შედეგად ვღებულობთ საკმაოდ დაუხვეწავ და სრულიად ზედმეტ კოდს.

ამ პოსტში მაქსიმალურად შევეცდები გადმოვცე ის დეტალები რაც PHP – სთან წლების მანძილზე მუშაობით შევიძინე და იმედი მაქვს რომ ეს ინფორმაცია თქვენთვისაც სასარგებლო იქნება. სრულად »

ტეგები:

PHP: Document Root for FTP Client?

ვებ სერვერზე PHP – თი ფაილებთან მუშაობა არაერთ სიურპრიზს გვთავაზობს, რაც ზოგჯერ საინტერესოა ზოგჯერ კი მართლა მოსაბეზრებელი :) თუმცა არის ერთი საკითხი რაზეც ამჯერად შევაჩერებ თქვენს ყურადღებას.

სერვერზე ფაილებთან მუშაობა PHP – ს შესაბამისი ფუნქციებით(fopen, fwrite, touch და ა.შ) საკმაოზე უფრო მოუხერხებელია უსაფრთხოების დეტალების გამო. არავისთვის არ წარმოადგენს საიდუმლოს რომ ვებ სერვერზე განთავსებულ ფაილებს უნდა გააჩნდეთ შექმნის, ჩაწერის, წაკითხვისა და წაშლის შეზღუდვები.

ასეთ შემთხვევაში ფაილებთან მუშაობის ერთადერთ სწორ და ეფექტურ გზად რჩება PHP FTP მოდულის გამოყენება, ან soeket – ებზე დაყრდნობით შექმნილი შესაბამისი რეალიზაციის გამოყენება, რაც ფაქტიურად ერთი და იგივეა. სრულად »

ტეგები:

Mac Os X XAMPP: Tidy – ს ინსტალაცია PHP-5.2.6 – სთვის

ამ პოსტში მინდა მოგითხროთ პატარა ისტორია Mac OS X – ზე PHP – ს რეკომპილაციით მიღებულ “სიამოვნებასა” და უსაზღვრო “კომფორტზე” რომელიც ბოლო ორი დღის განმავლობაში მივიღე.

მაშ ასე, თუ თქვენ იყენებთ XAMPP – ს და გესაჭიროებათ PHP – სთვის tidy გაფართოვების დამატება რომელიც სამწუხაროთ XAMPP – ს არ მოყვება, გაგახარებთ და გეტყვით რომ საკმაოდ სერიოზული პრობლემის წინაშე დგახართ :D სრულად »

ტეგები: , ,

PHP 5.3 alpha1 – ცვლილებები ენაში

მაშ ასე, ცხოვრება წინ მიიწევს და რა თქმა უნდა ტექნოლოგიებიც ვითარდება… აგვისტოს დასაწყისსში გამოჩნდა PHP – ს ახალი 5.3 ალფა ვერსია რომელშიც ენის უმნიშვნელოვანესი გაუმჯობესებებია შეტანილი. თუმცა ამ ფაქტის შესახებ დაწერა ვერ მოვასწარი… ჯერ ქალაქში არ ვიყავი, შემდეგ კი ყველასათვის ის ავადსახსენებელი მოვლენები დაიწყო…

თუმცა, მიუხედავად ყველაფრისა ცხოვრება გრძელდება და მეც ვცდილობ დავუბრუნდე ჩვეულ რითმს, რასაც ამ მცირე მიმოხილვით დავიწყებ :)

მიმდინარე წლის დასაწყისში ენდი გუტმანსმა გააკეთა გარკვეული პროგნოზები თუ როგორი იქნებოდა ტექნოლოგიუირი 2008 წელი

გარკვეული პერიოდის შემდეგ Google – ს თანამშროლმელმა და ajaxian.com – ის რედაქტორმა, Dion Almaer – მა, დაწერა საპასუხო პოსტი – Andi Gutmans Predicts – ენდის პროგნოზების შესახებ… რომლის ბოლო აბზაციც თავად PHP – განვითარებასა და მომავალს ეხება:

I wonder what 2008 will be like for PHP, Andi. I have no doubt that it will continue to power a huge number of websites. But, what is PHP doing in 2008 to increase its share in the non-hacker-kiddie crowd? Is the Zend Framework going to compete with Rails and the like? How is PHP going to evolve? I want to be able to do richer DSLs with full open classes and meta-support.

სრულად »

ტეგები:

PHP: nl2p(aragraph) vs nl2br

როგორ იქცევით ისეთ შემთხვევაში, როდესაც საჭიროა HTML textarea ელემენტიდან მიღებული ტექსტის, HTML დოკუმენტში უცვლელად გამობეჭვდაა საჭირო ანუ ტექსტის ფორმატირების გათვალისწინებით?

ამ შემთხვევაში, ტექსტის აბზაცებად ფორმატირებას ვგულისხმობ, სადაც აბზაცების გამოყოფად იგულისხმება ახალი სტრიქონის სიმბოლო.

მაგალითად ასეთი ტექსტი:

ეს არის ჩვეულებრივი აბზაცი.

ეს არის შემდეგი აბზაცი...

და კიდევ ერთი აბზაცი..

ამ შემთხვევაში ტექსტის გამოსაბეჭდად გამოვიყენე <pre> ტეგი, რომელიც ტექსტს ახალი სტრიქონის სიმბოლოების გათვალისწინებით ბეჭდავს და არ უკარგავს მას ფორმატირებას. თუმცა, <pre> სრულიად გამოუსადეგარია ბლოგ პოსტის ან ამ ბლოგის მომხმარებლების მიერ დაპოსტილი კომენტარების გამოსატანად.

PHP – ს გააჩნია ფუნქცია სახელად nl2br რომელსაც ყოველი ახალი სტრიქონის სიმბოლო გადაჰყავს <br /> ტეგში, თუმცა არც ეს არის დიდი ხეირი რადგან,
როგორც HTML სპეციფიკაცია გვეუბნება, აბზაცების ფორმატირებისათვის უნდა გამოვიყენოთ <p> ტეგი, თუმცა PHP – ს ასეთი ფუნქცია არ გააჩნია.

მარტივი რეგულარული გამოსახულების დახმარებით მივიღე ასეთი ფუნქცია, რომელიც აღწერილ პრობლემას მარტივად და სწრაფად აგვარებს:

[php]
function nl2p($input) {
return preg_replace(‘~^s*(.*?)s*$~smx’, ‘

$1

‘, $input);
}
[/php]

თუ ამ ფუნქციას გამოვიყენებთ ზემოთ მოყვანილი ტექსტის დასამუშავებლად, მივიღებთ ასეთ შედეგს:

<p>ეს არის ჩვეულებრივი აბზაცი.</p>
<p>ეს არის შემდეგი აბზაცი...</p>
<p>და კიდევ ერთი აბზაცი..</p>

აღსანიშნავია რომ, ეს ფუნქცია იგნორირებას უკეთებს ერთმანეთის მიყოლებით აკრეფილ ახალი სტრიქონის სიმბოლოებს.

როგორ მუშაობს თავად რეგულარული გამოსახულება:

$regex = '~
    ^            # 1) შევამოწმოთ სტრიქონის დასაწყისი
    s*          # 2) ნებისმიერი რაოდენობის უხილავი სიმბოლო
    (.*?)        # 3) ნებისმიერი რაოდენობის ნებისმიერი სიმბოლო
    s*          # 4) ნებისმიერი რაოდენობის უხილავი სიმბოლო
    $            # 5) შევამოწმოთ სტრიქონის დასასრული
~smx'            # 6) smx - გამოსახულების მოდიფიკატორები

ბრჩხილებში მოქცეული გამოსახულების მესამე პუნქტის მეშვეობით ვინახავთ ჩვენთვის საჭირო ტექსტს, იმისათვის რომ მოგვიანებით შევძლოთ მისი გამოყენება, გამოსახულების დანარჩენი ნაწილი კი უბრალოდ ტექსტის შემოწმებისათვის არის საჭირო.

თავად გამოსახულებაზე უფრო საინტერესო მოცემულ შემთხვევაში არის, გამოყენებული რეგულარული გამოსახულების მოდიფიკატორები s და m.

. – წერტილი, რეგულარულ გამოსახულებაში ნიშნავს ნებისმიერ სიმბოლოს ახალი სტრიქონის სიმბოლოს გარდა. ხოლო s მოდიფიკატორი გამოსახულების ბოლოს წერტილს უცვლის მნიშვნელობას და იგი უკვე სხვა ნებისმიერ სიმბოლოსთან ერთად ახალი სტრიქონის სიმბოლოებსაც მოიცავს.

m მოდიფიკატორი თავის მხრივ ცვლის ტექსტის დასაწყისისა(^) და ტექსტის დასასრულის($) სიმბოლოების ქცევას. რაც ნიშნავს იმას, რომ, ეს სიმბოლოები მიუთითებენ არა მთლიანი ტექსტის დასაწყისსა და დასასრულს არამედ ახალი ხაზის სიმბოლოთი გამოყოფილ სტრიქონის დასაწყისსა და დასასრულს.

გამოსახულებაში ასევე მნიშვნელოვანია მეორე და მეოთხე პუნქტები. გამოსახულება უბრალოდ აღნიშნავს ნებისმიერი რაოდენობის უხილავ სიმბოლოს(უხილავ სიმბოლოებს განეკუთვნება ახალი სტრიქონის სიმბოლოც). გამოსახულების ეს ნაწილია საჭიროა იმისათვის რომ ტექსტში არსებულ ერთზე მეტ ახალი სტრიქონის სიმბოლოებს გავუკეთოთ იგნორეირება რათა არ მივიღოთ ცარიელი <p>p</p> ტეგების კომბინაცია.

სულ ეს არის და ეს :)

ტეგები: ,

RoR – ის მამა PHP – აქებს?

ძალიან უცნაური, მოულოდნელი და საინტერესო ბლოგ პოსტი(მადლობა გიორგის) წავიკითხე…

ბევრი წერით არ შეგაწყენთ თავს. უბრალოდ ვიტყვი რომ ეს პოსტი ეკუთვნის თავად David Heinemeier Hansson ცნობილი ფრეიმვორკის Ruby on Rails – ის ავტორს!

The immediacy of PHP

I’ve been writing a little bit of PHP again today. That platform has really received an unfair reputation. For the small things I’ve been used it for lately, it’s absolutely perfect.

I love the fact that it’s all just self-contained. That the language includes so many helpful functions in the box. And that it managed to get distributed with just about every instance of Apache out there.

For the small chores, being quick and effective matters far more than long-term maintenance concerns. Or how pretty the code is. PHP scales down like no other package for the web and it deserves more credit for tackling that scope.

ჩემის აზრით ფრიად საინტერესო და საღი დამოკიდებულებაა PHP – სადმი :D

ტეგები:

PHP: callback ფსევდო ტიპი

PHP – ში არსებობს ე.წ. ფესევდო ტიპის ცნება. ფსევდო ტიპები რამდენიმეა და ერთერთი ყველაზე საინტერესო მათ შორის არის callback ფსევდო ტიპი.

ცნობილია რომ ამ ენაში, მთელ რიგ ფუნქციებს შესაძლებელია callback პარამეტრები გადავცეთ, რომელიც უმეტეს შემთხვევაში წარმოადგენს ჩვეულებრივ PHP ფუნქციის(ან თავად ენაში არსებული, ან ჩვენს მიერ შექმნილი) სახელს. თუმცა დოკუმენტაციაში მითითებულია რომ გარდა ფუნქციებისა შესაძლებელია გადავცეთ ასევე კლასის როგორც სტატიკური ასევე არასტატიკური მეთოდები. სრულად »

ტეგები:

Registry პატერნი, array_map და ტექსტში შაბლონით ძებნა

ამ დღეებში ვატარებდი მცირე ექსპერიმენტებს ტექსტში შაბლონებით ძიებაზე, და მცირე სასარგებლო აღმოჩენები გავაკეთე. ჩემი ამოცანა მდგომარეობდა იმაში რომ ტექსტში მომეძებნა გარკვეული ფრაგმენტები და შემდეგ ჩამენაცვლებინა ისინი სხვა მნიშვნელობებით, ეს მნიშვნელობები კი სისტემის გლობალური ცვლადები იყო. ფრაგმენტებს ტრადიციული სახე მივეცი რადგან შაბლონებით ძიება მარტივი ყოფილიყო, ანუ რაღაც ამის მსგავსი {var:encoding}, ყველასათვის ცნობილი და მიღებული ფორმით… სრულად »

ტეგები: ,

PHP 4 end of life announcement – მეფე მოკვდა! გაუმარჯოს მეფეს!

მართალია მოგვიანებით მაგრამ მაინც უნდა შევეხო ამ ფაქტს და გამოვხატო ჩემი როგორც PHP დეველოპერის უსაღვრო სიხარული მომხდარის გამო.

PHP – ს ოფიციალურ საიტზე პირველსავე გვერდზეა გამოქვეყნებული ეს ინფორმაცია. გამომდინარე იქედან რომ არ ვიმყოფებოდი თბილისში და არანაირად არ მიმიწვდებოდა ხელი ინტერნეტზე ამ ფაქტის შესახებ ძალიან გვიან შევიტყვე, თუმცა ნამდვილად ღირებული და ჩემთვის პირადად ძალიან სასიხარულო განცხადებაა რადგან ამ დღეს დიდი ხანი ველოდი.

მაშ ასე => მეფე მოკვდა! გაუმარჯოს მეფეს! :D

სრულად »

ტეგები: