یکی از محبوب ترین زبان های برنامه نویسی وب ، زبان برنامه نویسی php هست که به شدت بین برنامه نویس ها محبوب هست. اگر نگاهی بهانجمن PHP روی گیتهاب بیندازید، متوجه خواهید شد که روزانه پروژههای بسیار جذابی با استفاده از PHP پیادهسازی میشوند.
کتابخانه های زیادی برای برنامه نویسی php موجود هست اما چند کتابخانه به شدت معروف و پر کاربرد هستند در این مطلب میخواهیم ۲۰ کتابخانه معروف و پر کاربرد php رو معرفی کنیم. که جزو محبوبترین کتابخانههای سال ۲۰۱۶ هستند. این کتابخانههای متن باز کمک خوبی برای پیادهسازی پروژههای PHP خواهد بود.اگر هم دنبال منابع آموزش برنامه نویسی php هستید میتوانید از مطالب آموزشی داخل سایت استفاده کنید مثل آموزش مقدماتی تا متوسطه PHP ، آموزش php از صفر تا صد و دانلود فیلم آموزش برنامه نویسی PHP Essential به زبان اصلی ،البته این سه عنوان که معرفی کردیم فقط سه مطلب بود از آموزش php داخل سایت ، یک مطلب دیگر هم در سایت منتشر کردیم که با استقبال فوق العاده کاربران روبرو بود آن همآموزش ساخت ربات تلگرام با PHP هست.
![معرفی بهترین کتابخانه های PHP](http://sourceiran.com/wp-content/uploads/Introducing-the-best-library-in-PHP.jpg)
بهترین کتابخانه های PHP
با استفاده از کتابخانهی Monolog میتوانید یک سیستم پیشرفتهی ورود به پنل طراحی کنید که از وب سرویس ها ، دیتابیس ها و فایل ها لاگ میگیرد. این کتابخانه کاربرد های فراوانی دارد و با سه فریمورک Laravel، Symfony2 و Slim نیز سازگار است.
| <span class="hljs-keyword">use</span> <span class="hljs-title">Monolog</span>\<span class="hljs-title">Logger</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">Monolog</span>\<span class="hljs-title">Handler</span>\<span class="hljs-title">StreamHandler</span>; <span class="hljs-comment">// create a log channel</span> <span class="hljs-variable">$log</span> = <span class="hljs-keyword">new</span> Logger(<span class="hljs-string">'name'</span>); <span class="hljs-variable">$log</span>->pushHandler(<span class="hljs-keyword">new</span> StreamHandler(<span class="hljs-string">'path/to/your.log'</span>, Logger::WARNING)); <span class="hljs-comment">// add records to the log</span> <span class="hljs-variable">$log</span>->warning(<span class="hljs-string">'Foo'</span>); <span class="hljs-variable">$log</span>->error(<span class="hljs-string">'Bar'</span>); |
این کتابخانه مجموعهای از کلاسهای PHP ای است که به توسعهدهندگان اجازه میدهد قابلیت ویرایش صفحه گسترده (spreadsheet) را در برنامههای خود پیادهسازی کنند. PHPExcel از فرمتهای پرکابردی مثل.xls و .xlsx، .ods و CSV پشتیبانی میکند.
| <span class="hljs-keyword">include</span> <span class="hljs-string">'PHPExcel/IOFactory.php'</span>; <span class="hljs-variable">$inputFileName</span> = <span class="hljs-string">'./sampleData/example1.xls'</span>; <span class="hljs-keyword">echo</span> <span class="hljs-string">'Loading file '</span>,pathinfo(<span class="hljs-variable">$inputFileName</span>,PATHINFO_BASENAME),<span class="hljs-string">' using IOFactory'</span>; <span class="hljs-variable">$objPHPExcel</span> = PHPExcel_IOFactory::load(<span class="hljs-variable">$inputFileName</span>); <span class="hljs-variable">$sheetData</span> = <span class="hljs-variable">$objPHPExcel</span>->getActiveSheet()->toArray(<span class="hljs-keyword">null</span>,<span class="hljs-keyword">true</span>,<span class="hljs-keyword">true</span>,<span class="hljs-keyword">true</span>); var_dump(<span class="hljs-variable">$sheetData</span>); |
PHP-ML یک کتابخانهی جالب برای پیادهسازی تکنیک یادگیری ماشین است. PHP-ML این امکان را به شما میدهد که با استفاده از یک API به ربات خود بیاموزید بر طبق دادههای ورودی تصمیمگیری کند. این کتابخانه الگوریتمهای گوناگونی برای تشخیص الگو و محاسبات آمار پیچیده ارائه میدهد.
| <span class="hljs-keyword">use</span> <span class="hljs-title">Phpml</span>\<span class="hljs-title">Classification</span>\<span class="hljs-title">KNearestNeighbors</span>; <span class="hljs-variable">$samples</span> = [[<span class="hljs-number">1</span>, <span class="hljs-number">3</span>], [<span class="hljs-number">1</span>, <span class="hljs-number">4</span>], [<span class="hljs-number">2</span>, <span class="hljs-number">4</span>], [<span class="hljs-number">3</span>, <span class="hljs-number">1</span>], [<span class="hljs-number">4</span>, <span class="hljs-number">1</span>], [<span class="hljs-number">4</span>, <span class="hljs-number">2</span>]]; <span class="hljs-variable">$labels</span> = [<span class="hljs-string">'a'</span>, <span class="hljs-string">'a'</span>, <span class="hljs-string">'a'</span>, <span class="hljs-string">'b'</span>, <span class="hljs-string">'b'</span>, <span class="hljs-string">'b'</span>]; <span class="hljs-variable">$classifier</span> = <span class="hljs-keyword">new</span> KNearestNeighbors(); <span class="hljs-variable">$classifier</span>->train(<span class="hljs-variable">$samples</span>, <span class="hljs-variable">$labels</span>); <span class="hljs-variable">$classifier</span>->predict([<span class="hljs-number">3</span>, <span class="hljs-number">2</span>]); <span class="hljs-comment">// returns 'b' as the [3, 2] point is closer to the points in group b</span> |
این کتابخانهی کاربردی به کاربران اجازه میدهد تا از طریق شبکههای اجتماعی مثل گوگلپلاس، فیس بوک، توییتر، گیتهاب، اینستاگرم و لینکدین هویت خود را تایید کنند. فریمورکهای زیادی از Opauth پشتیبانی میکنند.
| <span class="hljs-string">'Strategy'</span> => <span class="hljs-keyword">array</span>( <span class="hljs-comment">// Define strategies here.</span> <span class="hljs-string">'Facebook'</span> => <span class="hljs-keyword">array</span>( <span class="hljs-string">'app_id'</span> => <span class="hljs-string">'YOUR APP ID'</span>, <span class="hljs-string">'app_secret'</span> => <span class="hljs-string">'YOUR APP SECRET'</span> ), ); |
Whoops جزییات دقیق خطاها و اشکالات را به شما نشان خواهد داد. این کتابخانه یک صفحه خطا را نشان میدهد که در آن تمامی اشکالات با رنگ و سایزبندی مختلف مشخص است. فریمورک لاراول از این Whoops پشتیبانی میکند.
| <span class="hljs-variable">$whoops</span> = <span class="hljs-keyword">new</span> \Whoops\Run; <span class="hljs-variable">$whoops</span>->pushHandler(<span class="hljs-keyword">new</span> \Whoops\Handler\PrettyPageHandler); <span class="hljs-variable">$whoops</span>->register(); <span class="hljs-comment">// That's it!</span> |
سیستم کش این کتابخانه سرعت بارگذاری سایت را به میزان قابل توجهی افزایش میدهد. FastCache به جای فرستادن هر کوئری به پایگاه داده، مورادی را ارسال میکند که خاص و منحصر بفرد است. به این معنا که اگر یک جست و جوی مشابه را ۱۰۰۰ بار انجام داده باشید، تنها یک بار از پایگاه داده استفاده میشود. بقیهی ۹۹۹ بار از کشِ سیستم بارگذاری میشود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span class="hljs-keyword">use</span> <span class="hljs-title">phpFastCache</span>\<span class="hljs-title">CacheManager</span>; <span class="hljs-variable">$config</span> = <span class="hljs-keyword">array</span>( <span class="hljs-string">"storage"</span> => <span class="hljs-string">"files"</span>, <span class="hljs-string">"path"</span> => <span class="hljs-string">"/your_cache_path/dir/"</span>, ); CacheManager::setup(<span class="hljs-variable">$config</span>); <span class="hljs-comment">// Try to get from Cache first with an Identity Keyword</span> <span class="hljs-variable">$products</span> = CacheManager::get(<span class="hljs-string">"products"</span>); <span class="hljs-comment">// If not available get from DB and save in Cache.</span> <span class="hljs-keyword">if</span>(is_null(<span class="hljs-variable">$products</span>)) { <span class="hljs-variable">$products</span> = <span class="hljs-string">"DB SELECT QUERY"</span>; <span class="hljs-comment">// Cache your $products for 600 seconds.</span> CacheManager::set(<span class="hljs-variable">$cache_keyword</span>, <span class="hljs-variable">$products</span>,<span class="hljs-number">600</span>); } |
Guzzle یکی از بهترین کتابخانههایی است که برای کار با HTTP وجود دارد. این کتابخانه از عهدهی انجام هر کاری در مورد HTTP از جمله درخواستهای همزمان و غیر همزمان، کوکیهای HTTP، آپلود و دانلودهای زیاد و حجیم برمیآید. کار کردن با این کتابخانه بسیار آسان است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <span class="hljs-variable">$client</span> = <span class="hljs-keyword">new</span> GuzzleHttp\Client(); <span class="hljs-variable">$res</span> = <span class="hljs-variable">$client</span>->request(<span class="hljs-string">'GET'</span>, <span class="hljs-string">'https://api.github.com/user'</span>, [ <span class="hljs-string">'auth'</span> => [<span class="hljs-string">'user'</span>, <span class="hljs-string">'pass'</span>] ]); <span class="hljs-keyword">echo</span> <span class="hljs-variable">$res</span>->getStatusCode(); <span class="hljs-comment">// "200"</span> <span class="hljs-keyword">echo</span> <span class="hljs-variable">$res</span>->getHeader(<span class="hljs-string">'content-type'</span>); <span class="hljs-comment">// 'application/json; charset=utf8'</span> <span class="hljs-keyword">echo</span> <span class="hljs-variable">$res</span>->getBody(); <span class="hljs-comment">// {"type":"User"...'</span> <span class="hljs-comment">// Send an asynchronous request.</span> <span class="hljs-variable">$request</span> = <span class="hljs-keyword">new</span> \GuzzleHttp\Psr7\Request(<span class="hljs-string">'GET'</span>, <span class="hljs-string">'http://httpbin.org'</span>); <span class="hljs-variable">$promise</span> = <span class="hljs-variable">$client</span>->sendAsync(<span class="hljs-variable">$request</span>)->then(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(<span class="hljs-variable">$response</span>)</span> </span>{ <span class="hljs-keyword">echo</span> <span class="hljs-string">'I completed! '</span> . <span class="hljs-variable">$response</span>->getBody(); }); <span class="hljs-variable">$promise</span>->wait(); |
Munee ترفند های زیادی را امکانپذیر میسازد. برای مثال کارهایی مثل ترکیب چند فایل CSS یا جاوا اسکریپت با یکدیگر، تغییر اندازه تصویر و کوچک سازی فایل ها یا فشرده سازی بر اساس Gzip به راحتی توسط این کتابخانه قابل اجراست. وظایفی که مطرح شد هم درسمت سرور و هم در سمت کاربر اجرا میشود تا ذخیره سازی مطلوبی انجام شود.
| <span class="hljs-keyword">require</span> <span class="hljs-string">'vendor/autoload.php'</span>; <span class="hljs-keyword">echo</span> MuneeDispatcher::run(<span class="hljs-keyword">new</span> MuneeRequest()); |
| <span class="hljs-comment"><!-- Combining two CSS files into one. --></span> <span class="hljs-tag"><<span class="hljs-title">link</span> <span class="hljs-attribute">rel</span>=<span class="hljs-value">"stylesheet"</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/css/bootstrap.min.css, /css/demo.css"</span>></span> <span class="hljs-comment"><!-- Resizing image --></span> <span class="hljs-tag"><<span class="hljs-title">img</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"/path/to/image.jpg?resize=width[100]height[100]exact[true]"</span>></span> <span class="hljs-comment"><!-- Files that need preprocessing are compiled automatically --></span> <span class="hljs-tag"><<span class="hljs-title">link</span> <span class="hljs-attribute">rel</span>=<span class="hljs-value">"stylesheet"</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/css/demo.scss"</span>></span> <span class="hljs-comment"><!-- Minifying code --></span> <span class="hljs-tag"><<span class="hljs-title">script</span> <span class="hljs-attribute">src</span>=<span class="hljs-value">"/js/script.js?minify=true"</span>></span><span class="hljs-tag"></<span class="hljs-title">script</span>></span> |
Twig یک موتور قالب ساز است که با استفاده از آن میتوانید کد های کوتاه تر و خواناتری بنویسید. این کتابخانه هر امکان پیشرفته ای که از یک موتور قالب ساز انتظار دارید، مانند مثل کار با حلقهها، متغیرها و شروط، به شما میدهد.
| // Template HTML <span class="hljs-tag"><<span class="hljs-title">p</span>></span>Welcome {{ name }}!<span class="hljs-tag"></<span class="hljs-title">p</span>></span> |
| <span class="hljs-comment">// Rendering</span> <span class="hljs-keyword">require_once</span> <span class="hljs-string">'/path/to/lib/Twig/Autoloader.php'</span>; Twig_Autoloader::register(); <span class="hljs-variable">$loader</span> = <span class="hljs-keyword">new</span> Twig_Loader_Filesystem(<span class="hljs-string">'/path/to/templates'</span>); <span class="hljs-variable">$twig</span> = <span class="hljs-keyword">new</span> Twig_Environment(<span class="hljs-variable">$loader</span>, <span class="hljs-keyword">array</span>( <span class="hljs-string">'cache'</span> => <span class="hljs-string">'/path/to/compilation_cache'</span>, )); <span class="hljs-keyword">echo</span> <span class="hljs-variable">$twig</span>->render(<span class="hljs-string">'index.html'</span>, <span class="hljs-keyword">array</span>(<span class="hljs-string">'name'</span> => <span class="hljs-string">'George'</span>)); |
Goutte یک خزندهی وب است که با استفاده از ان میتوانید اطلاعات مورد نظر خود را از صفحات HTML یا XML به دست آورید. در واقع یک درخواست به آدرس اینترنتی مورد نظر فرستاده میشود و پاسخی دریافت میشود. این پاسخ به توسعه دهنده اجازه میدهد تا به روشهای گوناگون با صفحه مورد نظر در تعامل باشد.
| <span class="hljs-keyword">use</span> <span class="hljs-title">Goutte</span>\<span class="hljs-title">Client</span>; <span class="hljs-variable">$client</span> = <span class="hljs-keyword">new</span> Client(); <span class="hljs-comment">// Go to the symfony.com website</span> <span class="hljs-variable">$crawler</span> = <span class="hljs-variable">$client</span>->request(<span class="hljs-string">'GET'</span>, <span class="hljs-string">'http://www.symfony.com/blog/'</span>); <span class="hljs-comment">// Click on the links</span> <span class="hljs-variable">$link</span> = <span class="hljs-variable">$crawler</span>->selectLink(<span class="hljs-string">'Security Advisories'</span>)->link(); <span class="hljs-variable">$crawler</span> = <span class="hljs-variable">$client</span>->click(<span class="hljs-variable">$link</span>); <span class="hljs-comment">// Extract data</span> <span class="hljs-variable">$crawler</span>->filter(<span class="hljs-string">'h2 > a'</span>)->each(<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-params">(<span class="hljs-variable">$node</span>)</span> </span>{ <span class="hljs-keyword">print</span> <span class="hljs-variable">$node</span>->text().<span class="hljs-string">"\n"</span>; }); |
این کتابخانه برای افرادی مناسب است که دستورات PHP را از خط فرمان اجرا میکنند. Climate مجموعه روش هایی را برای برقراری ارتباط با ترمینال ارائه میدهد.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <span class="hljs-variable">$climate</span> = <span class="hljs-keyword">new</span> League\CLImate\CLImateaker; <span class="hljs-comment">// Output</span> <span class="hljs-variable">$climate</span>->out(<span class="hljs-string">'This prints to the terminal.'</span>); <span class="hljs-comment">// Input</span> <span class="hljs-variable">$input</span> = <span class="hljs-variable">$climate</span>->input(<span class="hljs-string">'How you doin?'</span>); <span class="hljs-variable">$response</span> = <span class="hljs-variable">$input</span>->prompt(); <span class="hljs-comment">// Formatting</span> <span class="hljs-variable">$padding</span> = <span class="hljs-variable">$climate</span>->padding(<span class="hljs-number">10</span>); <span class="hljs-variable">$padding</span>->label(<span class="hljs-string">'Eggs'</span>)->result(<span class="hljs-string">'$1.99'</span>); <span class="hljs-variable">$padding</span>->label(<span class="hljs-string">'Oatmeal'</span>)->result(<span class="hljs-string">'$4.99'</span>); <span class="hljs-comment">// Eggs...... $1.99</span> <span class="hljs-comment">// Oatmeal... $4.99</span> |
این کتابخانه بر پایه Faker ساخته شده است که اشیای جعلی برای تست تهیه میکند. روش کار به این صورت است که ابتدا باید ساختار اشیای مورد نظر خود را بسازید. سپس با فراخوانی تابع آلیس، این شی جعلی به یک شی واقعی با مقادیر تصادفی تبدیل میشود.
| <span class="hljs-comment">// Template in person.yml file</span> Person: person{<span class="hljs-number">1.</span>.<span class="hljs-number">10</span>}: firstName: <span class="hljs-string">'</span><firstname()><span class="hljs-string">'</span> lastName: <span class="hljs-string">'</span><lastname()><span class="hljs-string">'</span> birthDate: <span class="hljs-string">'</span><date()><span class="hljs-string">'</span> email: <span class="hljs-string">'</span><email()><span class="hljs-string">'</span> <span class="hljs-comment">// Load dummy data into an object</span> <span class="hljs-variable">$person</span> = \Nelmio\Alice\Fixtures::load(<span class="hljs-string">'/person.yml'</span>, <span class="hljs-variable">$objectManager</span>); |
این کتابخانه از PHP برای پشتیبانی از WebSocket ها استفاده میکند. WebSocket یک کانال ارتباطی میان سرور و کلاینت به صورت لحظهای برقرار میکند. برای این منظور Ratchett پردازشهای جداگانهای را ایجاد میکند که همیشه در حال اجراست و پیامها را به صورت ناهمگام ردوبدل میکند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">MyChat</span> <span class="hljs-keyword">implements</span> <span class="hljs-title">MessageComponentInterface</span> </span>{ <span class="hljs-keyword">protected</span> <span class="hljs-variable">$clients</span>; <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">__construct</span><span class="hljs-params">()</span> </span>{ <span class="hljs-variable">$this</span>->clients = <span class="hljs-keyword">new</span> \SplObjectStorage; } <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">onOpen</span><span class="hljs-params">(ConnectionInterface <span class="hljs-variable">$conn</span>)</span> </span>{ <span class="hljs-variable">$this</span>->clients->attach(<span class="hljs-variable">$conn</span>); } <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">onMessage</span><span class="hljs-params">(ConnectionInterface <span class="hljs-variable">$from</span>, <span class="hljs-variable">$msg</span>)</span> </span>{ <span class="hljs-keyword">foreach</span> (<span class="hljs-variable">$this</span>->clients <span class="hljs-keyword">as</span> <span class="hljs-variable">$client</span>) { <span class="hljs-keyword">if</span> (<span class="hljs-variable">$from</span> != <span class="hljs-variable">$client</span>) { <span class="hljs-variable">$client</span>->send(<span class="hljs-variable">$msg</span>); } } } } <span class="hljs-comment">// Run the server application through the WebSocket protocol on port 8080</span> <span class="hljs-variable">$app</span> = <span class="hljs-keyword">new</span> Ratchet\App(<span class="hljs-string">'localhost'</span>, <span class="hljs-number">8080</span>); <span class="hljs-variable">$app</span>->route(<span class="hljs-string">'/chat'</span>, <span class="hljs-keyword">new</span> MyChat); <span class="hljs-variable">$app</span>->run(); |
این کتابخانه در سیستمهایی مثل وردپرس و دروپال پیادهسازی شده و یکی از امنترین راهکارهای ارسال ایمیل در PHP است. PHPMailer توسطSMTP پشتیبانی میشود و میتوانید ایمیلهای مبتنی بر HTML را با استفاده از آن ارسال کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <span class="hljs-keyword">require</span> <span class="hljs-string">'PHPMailerAutoload.php'</span>; <span class="hljs-variable">$mail</span> = <span class="hljs-keyword">new</span> PHPMailer; <span class="hljs-variable">$mail</span>->setFrom(<span class="hljs-string">'from@example.com'</span>, <span class="hljs-string">'Mailer'</span>); <span class="hljs-variable">$mail</span>->addAddress(<span class="hljs-string">'steve@example.com'</span>); <span class="hljs-variable">$mail</span>->addAttachment(<span class="hljs-string">'/var/tmp/file.tar.gz'</span>); <span class="hljs-variable">$mail</span>->isHTML(<span class="hljs-keyword">true</span>); <span class="hljs-variable">$mail</span>->Subject = <span class="hljs-string">'Here is the subject'</span>; <span class="hljs-variable">$mail</span>->Body = <span class="hljs-string">'This is the HTML message body </span><b><span class="hljs-string">in bold!</span></b><span class="hljs-string">'</span>; <span class="hljs-keyword">if</span>(!<span class="hljs-variable">$mail</span>->send()) { <span class="hljs-keyword">echo</span> <span class="hljs-string">'Message could not be sent.'</span>; <span class="hljs-keyword">echo</span> <span class="hljs-string">'Mailer Error: '</span> . <span class="hljs-variable">$mail</span>->ErrorInfo; } <span class="hljs-keyword">else</span> { <span class="hljs-keyword">echo</span> <span class="hljs-string">'Message has been sent'</span>; } |
Hoa یک کتابخانهی واحد نیست. این سیستم مجموعهای از ۵۰ کتابخانهی کاربردی را ارائه میدهد که برای توسعهی وب مفیدند. Hoa کاملا ماژولار است. به این معنی که میتوانید از هر کتابخانهای که مدنظرتان است، بدون هیچ در هم ریختگی استفاده کنید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <span class="hljs-comment">// Hoa Mail</span> <span class="hljs-variable">$message</span> = <span class="hljs-keyword">new</span> Hoa\Mail\Message(); <span class="hljs-variable">$message</span>[<span class="hljs-string">'From'</span>] = <span class="hljs-string">'Gordon Freeman <gordon@freeman.hf>'</span>; <span class="hljs-variable">$message</span>[<span class="hljs-string">'To'</span>] = <span class="hljs-string">'Alyx Vance </span><alyx@vance.hf><span class="hljs-string">'</span>; <span class="hljs-variable">$message</span>[<span class="hljs-string">'Subject'</span>] = <span class="hljs-string">'Hoa is awesome!'</span>; <span class="hljs-variable">$message</span>->addContent( <span class="hljs-keyword">new</span> Hoa\Mail\Content\Text(<span class="hljs-string">'Check this out: http://hoa-project.net/!'</span>) ); <span class="hljs-variable">$message</span>->send(); <span class="hljs-comment">// Hoa Session</span> <span class="hljs-variable">$user</span> = <span class="hljs-keyword">new</span> Hoa\Session\Session(<span class="hljs-string">'user'</span>); <span class="hljs-keyword">if</span> (<span class="hljs-variable">$user</span>->isEmpty()) { <span class="hljs-keyword">echo</span> <span class="hljs-string">'first time'</span>, <span class="hljs-string">"\n"</span>; <span class="hljs-variable">$user</span>[<span class="hljs-string">'foo'</span>] = time(); } <span class="hljs-keyword">else</span> { <span class="hljs-keyword">echo</span> <span class="hljs-string">'other times'</span>, <span class="hljs-string">"\n"</span>; var_dump(<span class="hljs-variable">$user</span>[<span class="hljs-string">'foo'</span>]); } |
برای ساخت یک ایمیل در قالب HTML کدهای CSS باید بصورت inline نوشته شود. CssToInlineStyles این کار را به راحتی برایمان انجام خواهد داد. کافیست تا کد های خود را در یک فایل .css بنویسید تا این کتابخانه با استفاده از انتخابگرها، کدها را به تگهای مناسب خود اختصاص دهد.
| <span class="hljs-keyword">use</span> <span class="hljs-title">TijsVerkoyen</span>\<span class="hljs-title">CssToInlineStyles</span>\<span class="hljs-title">CssToInlineStyles</span>; <span class="hljs-comment">// create instance</span> <span class="hljs-variable">$cssToInlineStyles</span> = <span class="hljs-keyword">new</span> CssToInlineStyles(); <span class="hljs-variable">$html</span> = file_get_contents(<span class="hljs-keyword">__DIR__</span> . <span class="hljs-string">'/examples/sumo/index.htm'</span>); <span class="hljs-variable">$css</span> = file_get_contents(<span class="hljs-keyword">__DIR__</span> . <span class="hljs-string">'/examples/sumo/style.css'</span>); <span class="hljs-comment">// output</span> <span class="hljs-keyword">echo</span> <span class="hljs-variable">$cssToInlineStyles</span>->convert( <span class="hljs-variable">$html</span>, <span class="hljs-variable">$css</span> ); |
برای هرگونه تغییری در رشتهها باید از این کتابخانه استفاده کنید. Stringy متد های مختلفی از جمله( reverse(), htmlEncode(), toAscii() ) را برای اصلاح متن پیشنهاد میدهد.
| s(<span class="hljs-string">'Camel-Case'</span>)->camelize(); <span class="hljs-comment">// 'camelCase'</span> s(<span class="hljs-string">' Ο συγγραφέας '</span>)->collapseWhitespace(); <span class="hljs-comment">// 'Ο συγγραφέας'</span> s(<span class="hljs-string">'foo & bar'</span>)->containsAll([<span class="hljs-string">'foo'</span>, <span class="hljs-string">'bar'</span>]); <span class="hljs-comment">// true</span> s(<span class="hljs-string">'str contains foo'</span>)->containsAny([<span class="hljs-string">'foo'</span>, <span class="hljs-string">'bar'</span>]); <span class="hljs-comment">// true</span> s(<span class="hljs-string">'fòôbàř'</span>)->endsWith(<span class="hljs-string">'bàř'</span>, <span class="hljs-keyword">true</span>); <span class="hljs-comment">// true</span> s(<span class="hljs-string">'fòôbàř'</span>)->getEncoding(); <span class="hljs-comment">// 'UTF-8'</span> s(<span class="hljs-string">'&'</span>)->htmlDecode(); <span class="hljs-comment">// '&'</span> |
این کتابخانه یک اجرا کنندهی وظیفه(task) میباشد که فقط مختص PHP است. با استفاده از Robo میتوانید یک اتوماسیون برای خود راه بیندازید تا گردش کارتان بهبود یابد. کتابخانهی Robo میتواند تست انجام دهد و به بروزرسانیهای کنترل نسخه رسیدگی کند.
| <span class="hljs-comment">// Doing a Git Commit with Robo</span> <span class="hljs-keyword">public</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">pharPublish</span><span class="hljs-params">()</span> </span>{ <span class="hljs-variable">$this</span>->pharBuild()->run(); <span class="hljs-variable">$this</span>->_rename(<span class="hljs-string">'robo.phar'</span>, <span class="hljs-string">'robo-release.phar'</span>); <span class="hljs-keyword">return</span> <span class="hljs-variable">$this</span>->collectionBuilder() ->taskGitStack() ->checkout(<span class="hljs-string">'gh-pages'</span>) ->taskGitStack() ->add(<span class="hljs-string">'robo.phar'</span>) ->commit(<span class="hljs-string">'robo.phar published'</span>) ->push(<span class="hljs-string">'origin'</span>, <span class="hljs-string">'gh-pages'</span>) ->checkout(<span class="hljs-string">'master'</span>) ->run(); } |
این کتابخانه از متد های مختلفی استفاده کرده و متغیرها را به شکلی خوانا و قابل فهم برای افراد تبدیل میکند. برای مثال میتواند اعداد یونانی را ترجمه کند، رشتههای طولانی را کوتاه کند و یا بایتها را به شکل kB/MB/GB محاسبه کند. این کتابخانه بیشتر از ۱۵ زبان (حتی از نوع گفتاری) را پشتیبانی میکند.
| <span class="hljs-keyword">use</span> <span class="hljs-title">Coduo</span>\<span class="hljs-title">PHPHumanizer</span>\<span class="hljs-title">NumberHumanizer</span>; <span class="hljs-keyword">echo</span> StringHumanizer::humanize(<span class="hljs-string">'field_name'</span>); <span class="hljs-comment">// "Field Name"</span> <span class="hljs-keyword">echo</span> NumberHumanizer::ordinalize(<span class="hljs-number">1</span>); <span class="hljs-comment">// "1st"</span> <span class="hljs-keyword">echo</span> NumberHumanizer::ordinalize(<span class="hljs-number">23</span>); <span class="hljs-comment">// "23rd"</span> <span class="hljs-keyword">echo</span> NumberHumanizer::toRoman(<span class="hljs-number">5</span>); <span class="hljs-comment">// "V"</span> <span class="hljs-keyword">echo</span> NumberHumanizer::fromRoman(<span class="hljs-string">"MMMCMXCIX"</span>); <span class="hljs-comment">// 3999</span> <span class="hljs-keyword">echo</span> NumberHumanizer::binarySuffix(<span class="hljs-number">1024</span>); <span class="hljs-comment">// "1 kB"</span> <span class="hljs-keyword">echo</span> NumberHumanizer::binarySuffix(<span class="hljs-number">1073741824</span> * <span class="hljs-number">2</span>); <span class="hljs-comment">// "2 GB"</span> |
ColorExtractor کتابخانهی سودمندی است که برای استخراج رنگ از تصاویر استفاده میشود. این کتابخانه تمامی پیکسلهای تصویر را بررسی کرده و یک پالت رنگی به ما بر میگرداند. توسعه دهندگان از این پالت رنگی برای تشخیص رنگ قالب استفاده میکنند و طراحی خود را با آن انطباق میدهند.
| <span class="hljs-keyword">require</span> <span class="hljs-string">'vendor/autoload.php'</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">League</span>\<span class="hljs-title">ColorExtractor</span>\<span class="hljs-title">Color</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">League</span>\<span class="hljs-title">ColorExtractor</span>\<span class="hljs-title">Palette</span>; <span class="hljs-variable">$palette</span> = Palette::fromFilename(<span class="hljs-string">'./some/image.png'</span>); <span class="hljs-variable">$topFive</span> = <span class="hljs-variable">$palette</span>->getMostUsedColors(<span class="hljs-number">5</span>); <span class="hljs-variable">$colorCount</span> = count(<span class="hljs-variable">$palette</span>); <span class="hljs-variable">$blackCount</span> = <span class="hljs-variable">$palette</span>->getColorCount(Color::fromHexToInt(<span class="hljs-string">'#000000'</span>)); |
در این پست سعی کردیم بهترین کتابخانه های php رو معرفی کنیم اگر شما هم کتابخانه ای رو میشناسید که به نظرتون مفید و پر کاربرد هستد در بخش نظرات اعلام کنید تا در این مطلب اضافه کنیم.