You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
新年あけましておめでとうございます。今年もボチボチやっていきます。 本稿ではPHP製のWebスクレイピングライブラリGoutteを紹介します。 Goutte(グット)とは Goutteは必要十分な機能を持ったWebスクレイピングライブラリです。そもそもWebスクレイピングというのは、外部Webページから必要なデータを取ってくるくらいの意味です。つまり、GoutteはWebスクレイピングを簡単に行う道具だと考えればいいでしょう。 具体的には、GoutteはWebクローラとHTMLパーサを組み合わせたようなものです。Cookieやフォームの扱いなどWebブラウザとしての機能は一通り揃っていますし、CSS風の要素指定もできるなど、機能面では他のライブラリと遜色ないように感じます。 さらに僕個人がGoutteに期待している点は、安定性とロングサポートです。Goutteは主要機能をSymfony2お
PHPフレームワークの速度比較では、HelloWorldを表示するのみの単純なアプリを用いた計測を元に比較表が作られることが多いです。特に後発のフレームワークは分かりやすい特徴付けとして速度をアピールする傾向にあるため、その比較表を元に N倍速いというアピールをしています。 PHPフレームワークを使うということは、DBまで絡めたWebアプリを作ることがほとんどなため、HelloWorldアプリの比較よりは、DBからレコード取得して表示するまでの処理速度を比較したほうがより現実に近い指標になると思います。特にCakePHP1系ではDBのデータ取得も独自ドライバになっていますし、モデルの処理も重いのでそこまで含めて他と比較したほうが良いと思ってます。 今回はDBから1レコード取得して表示するという簡単なアプリで各フレームワークの速度を評価しました。フレームワークに備わっているViewキャッシュ
Whether starting from scratch or rebuilding a rich ecosystem, get pipelines flowing with preconfigured environments for your language and a minimal syntax with up to 50% less YAML or JSON. language: python python: - "3.7" - "3.8" - "3.9" # Command to install dependencies install: - pip install -r requirements.txt - pip install pytest pytest-cov # Command to run tests script: - pytest --cov=./ test
9. class CalculatorTest extends PHPUnit_Framework_TestCase { public function setUp() { $this->calc = new Calculator; } public function test_add_引数の和を返す() { $result = $this->calc->add(1, 2); $this->assertSame(3, $result); } } 10. class CalculatorTest extends PHPUnit_Framework_TestCase { public function setUp() { 1 $this->calc = new Calculator; } public function test_add_引数の和を返す() { $result = $this-
この記事はPHP Advent Calendarの19日目の記事です。 プログラマ10人集まれば、誰かMVCうんちく語るのが常。みんな大好きMVCの話です。僕は今年でPHPプログラマとして10年が経過しました。この節目の年に、これまで触ってきたフレームワークを振り返り、徹底的な個人的主観でMVCについて語っていきたい思います。忘年会シーズンでお疲れの皆様、ご安心ください。コード・ゼロでお届けします。 いろんな言語のいろんなフレームワークを触ってきたつもりですが、Javaはやってなかったんであまり詳しくないです。主にRails以降のフレームワークを見ていきます。 Railsの功績 PHPプログラマとしてRailsの登場で何にびっくりしたかというと、次の三つです。 router ActiveRecord cliと対話型shell ActiveRecordは魔法のように見えましたが、いずれ出ても
追記 DB接続時にcharset=utf8を指定 bindValueで暗黙の型変換されないように変更 Pimpleをサービスロケータとして使う場合の注意点を追加 テンプレートとしてフラットなPHPからTwigで書いた場合を追加 前提 スクリプト、ファイル、DBの文字コードはすべてUTF-8で統一です。 また、最初に以下のMySQLのテーブルがあることを前提として記事を書いています。 Database: MySQL user: myuser password: mypassword CREATE TABLE `blog_db`.`post` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `title` varchar(255) NOT NULL, `body` text NOT NULL, `date` date NOT NULL, PRI
2014年04月21日19:45 カテゴリ 運用しやすい管理画面とは こんにちは! (株)Zucks で Zucks Ad Network というアドネットワークシステムを開発・運用している @brtriver です。 先週末に Symfonyユーザー会 主催 の Symfony 勉強会 #9 が フォトクリエイトさんのご協力のもと開催され、"管理画面Webアプリケーションのアクセスコントロール" というお題で話をしてきました。スライドは既に公開していますが、内容について補足しつつ "運用しやすい管理画面" について書いてみたいと思います。 管理画面のアクセスコントロール from Masao Maeda 運用しやすい管理画面とは 今回いいたかったことをまとめると以下の2点になります。 URLに必要な情報が含まれていること アクセスコントロール (ACL) がシンプルなことPermane
Services Platform.sh for Symfony Best platform to deploy Symfony apps SymfonyInsight Automatic quality checks for your apps Symfony Certification Prove your knowledge and boost your career SensioLabs Professional services to help you with Symfony Blackfire Profile and monitor performance of your apps
ハイ、昨日のオレに引き続きFuelPHP Advent Calendar 2013の6日目です。 今回の内容もまたTwig絡みです。実は昨日の記事は、本日の記事の前準備になっていたのでした。 JavaScript側にPHPのオブジェクトを渡したい 最近のWebアプリはUIのインタラクションが凝っていて、ブラウザ側のJavaScriptで色んな制御をすることも当たり前になってきました。jQueryや様々なjQueryプラグインを駆使して、ユーザに分かりやすく使いやすいサービスを提供することは、もはやウェブエンジニアとしては持っていて当然のスキルになっています。 そのようなUIを作っている際に、JavaScript側に動作パラメータの初期値を渡すのに値を一つ一つテンプレート記法で埋め込むのが面倒だったので、一発で渡せるTwig Extensionを作ったので紹介します。 data_bind関数
PhpStorm で Symfony2 の開発するときにいつも設定していることをまとめました。たまに設定を初期化するとデフォルトから何を変更していたか分からなくなるので備忘録として。Symfony2 以外のプロジェクトもほとんど同じ設定で開発しているので Symfony2 を使っていない方も参考になると思います。 動作確認環境 Mac OS X El CapitanPhpStorm 2016.1PHP 5.4Symfony 2.3 目次 プロジェクトを作成する Symfony2 View を有効にする cache, log, vendor ディレクトリをプロジェクトから除外する vendor ディレクトリを Include path に追加する Symfony2 Plugin で入力補完を強化する Symfony2 の console コマンドを PhpStorm から実行する エディタの
Services Platform.sh for Symfony Best platform to deploy Symfony apps SymfonyInsight Automatic quality checks for your apps Symfony Certification Prove your knowledge and boost your career SensioLabs Professional services to help you with Symfony Blackfire Profile and monitor performance of your apps What about Silex in a Symfony 4 world? During the last few months, and as an exercise when working
This domain may be for sale!
小川雄大さんの新刊、効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門 をPHP勉強会のarray_randのお陰で頂いたので読んでみたので感想を。実質的にはSymfony2の貴重な日本語書籍この書籍はMVCやオブジェクト指向の基礎からスタートして、Symfony2(Symfony Standard Edition)、Doctrine、Twigやgit、git-flow、Twitter bootstrap(v2)、PHPUnit、Stagehand_TestRunnerといったツールを駆使してアプリケーションの開発を行う流れをソースコードを発展させながら解説するという書籍です。見ての通り最新のツール群を取り揃えた形の解説書籍になっています。特にSymfony2を使ったコードが(namespaceが付いたコード)書籍で確認できるという意味では貴重なのではと思いました。 また
2012年9月、PHPのフレームワーク戦争は新たな局面に突入した事が明確になってきました。PHPフレームワーク、Symfonyプロジェクトの創始者であるFabien Potencier氏のブログ記事がPHPフレームワーク界で話題です。 オブジェクト指向を本格的にサポートしたPHP5とRailsが与えたインスピレーションから始まった2005年頃からはsymfonyやZend Framework、CakePHP、CodeIgnitierなどのフレームワークを生み出しました。その後、名前空間をサポートしたPHP5.3がリリースされるとコードの抜本的な構造などを見なおした次世代フレームワークが次々に登場します。冒頭のFabien氏の記事では2012年9月6日にZendFramework 2.0とSymfony2.1が奇しくも同日にリリースされました。Fabien氏はZendFrameworkのリリ
Skip to main content Registration has been disabled.
結論 いきなり結論 利用しているフレームワークの規約がないなら、 PSR-2(日本語) に従っておけば、間違いない! あとは、コマンドラインなり、エディタで自動整形する * PHPコードをコマンドで自動整形! Condig Standards Fixer と PHP_CodeSniffer - Qiita 日本語なら以下がお勧め! PHPのコーディング規約 PSR-0、PSR-1、PSR-2、PSR-3とは | 9ensanのLifeHack 以下、コーディング規約とツールまとめ 目的 個人向け: PHPの開発をする場合、どのコーディング規約に従うべきか? をサクッと知りたい チーム向け: チームでどれを使うか? を決めるための参考に 教育: この規約でやって!と一言で教えるための参考URL PHPコーディング規約の種類 PEARコーディング規約 や Zend Codig Starndar
HelloKernel.php cache/ config/ console logs/ 先ほど説明をしたKernelというものが出てきます。Kernelの中にはいくつかのメソッドが実装されています。簡単に説明します。 ◆registerRootDir() Kernelのルートとなるディレクトリです。またカーネルを配置してあるディレクトリ、ここではhelloがカーネルの名称、つまりアプリケーションの名称となります。 ◆registerBundles() Bundleとは日本語にすると束とか1つにまとめたものという意味です。このBundleはSymfony 2では非常に重要な役割を持ちます。 このメソッドの中でZendBundleやDoctrineBundleを返しているのをみると、Bundleは従来のPluginのように思われるかもしれませんが、あながち間違いではないでしょう。 こ
Introducing four new PHP 5.3 components and Goutte, a simple web scraper | php|architect Symfony2にも入っているPHP 5.3ベースの便利ライブラリ集が紹介されていました。 ブラウザのシュミレーションをしたり、DOMを辿ったり、CSSセレクタ形式をXpathに変換したりと、便利に使えそうです。 CssSelector CSSセレクタをXPathに変えてくれるモジュールのようです。 ページのスクレイピングにとっても役立ちそうですね $document = new DOMDocument(); $document->loadHTMLFile('http://fabien.potencier.org/articles'); $xpath = new DOMXPath($document); forea
シンプルな問い合わせフォームアプリをSilexを使って作ってみましたのでその紹介。 Silexとは? SilexとはPHPで書かれたマイクロフレームワークです。RubyのsinatoraにインスパイアされてSymfony2のリードマージャー(Lead Merger)であるファビアンさんが作っています。特徴として名前空間がしがし使っていたりするのでPHP5.3.2以上でないと動きません。 というと、Symfony2っぽいと思われる方がいると思いますが、このSilexのライブラリはSymfony2でも利用しているコンポーネント類の一部を利用して作成されています。いわばSymfony2の妹分といったところでしょうか。 あと、ライブラリをpharアーカイブで配布しているので基本silex.pharの1ファイルさえあれば動かせます。 冗談のようなアプリかと思っていたら意外(失礼)と本気のようで公式サ
あけましておめでとうございます。小川です。 本日はTwigでカスタムタグを追加する方法を紹介します。 ■Twig TwigはPHPで実装されたテンプレートエンジンの1つで、Python製のテンプレートエンジンのJinjaとほぼ同じ構文を持っています。 Webアプリケーションフレームワークsymfonyの次期バージョンでもあるSymfony2で採用されることが決定しており、Symfony界隈を中心に注目を浴びているテンプレートエンジンです。 <h1>Categories</h1> {% if categories|length > 0 %} <ul> {% for category in categories %} <li>{{ category.name }}</li> {% endfor %} </ul> {% endif %} 上記がTwigを使ったサンプルコードです。「{% %}」や
最近はまんぐうん家にいます。 nagata (@handlename) です。 FlashやJSと連携する際には、APIを実装することになりますが、 今回は「こんなことやると実装が楽になるよ!」という小技をいくつか紹介します。 ※本記事ではレスポンスの形式としてJSONを使った場合を例として用いています。 ※アプリ名を「api」、モジュール名を「kayac」として説明します。 symfonyのバージョンは1.4です。 APIのレスポンスを返すための準備 symfonyのレスポンス、そのままではレイアウトが適用されてしまいます。 HTML形式で表示されるわけですね。 APIのレスポンスとして使う場合、こんなんじゃやってられません。 view.yml でレスポンスの形式を設定してしまいましょう。 apps/api/config/view.yml has_layoutをfalseにすることによっ
この記事はSymfony Advent Calendar 2014 19日目の記事です。 はじめに 今年新卒として配属されてからエンジニア4人のチームで半年ほどSymfony2を使って開発をしてきて、Symfony2で良かった(メリット)と感じた所や、こういう時辛いねー(デメリット)と感じた所がいくつか見えてきたので、まとめようと思います! 使おうかどうか迷っている人などの参考になればと思います。 メリット まずはメリットから。良い所がたくさんありました! 部品の再利用性が高い Symfony2は本当に疎結合に徹底した思想だなと感じました。 Symfony2はいわゆる「フルスタックフレームワーク」のイメージが強いですが、その他のプロダクトにもぶちこめるほどのパーツ単位のものが組み合わさってフルスタックな形を実現しています。 なので、そういったSymfony2が提供しているコンポーネントのご
Symfony Advent Calendar JP 2011 : ATND 9日目の記事です。 Symfony2.0.7が昨日リリースされましたね。今回のアップデートで個人的に熱かったのはSymfony2にバンドルされるTwigのバージョンがv1.1.2からv1.4.0へアップグレードされた所です。Twigは便利な機能もいっぱいありますのでこの機会に紹介したいと思います。 for お馴染みのループに使う構文です。一般的な使い方はこうです。 <ul> {% for item in article %} <li>{{ item.title }}</li> {% endfor %} </ul> もちろん配列の添字にもアクセスできます。 <ul> {% for key, item in article %} <li>{{ key }}:{{ item.title }}</li> {% endfo
11月12日にパーフェクトPHPが発売しました。購入いただいた方、コメントいただいた方、ありがとうございます! - さて本題です。PHP 5.3から名前空間が使えるようになりました。僕はここ最近Symfony2で社内向けのアプリを開発したり、Symfony2のバンドルをいくつか作ったりしてすっかり名前空間に慣れてきました。 名前空間を使い始めて感じたのが、クラス名をつける際の感覚がこれまでとは少し違うように思います。これまで、というのは主にPEAR形式のクラス名を指しています。Doctrineを例にとって解説します。 名前空間とクラス名 Doctrine 1では、次のようなクラスが定義されています。 Doctrine_Expression_Mysql Doctrine_DataDict_Mysql Doctrine_Connection_Mysql これらを単純に名前空間を使った形式に置き
ICU User Guide This User Guide provides information on i18n topics for which ICU has services, and includes details that go beyond the C, C++, and Java API docs (and avoids some duplication between them). You may want to start with the Introduction to ICU or browse the navigation bar for a specific topic. This is the new home of the User Guide (since 2020 August).
Composer の使い方を調べたメモ。 Ryuzee.comの記事で分からなかった部分を実際に使って試してみました。 以下、内容はほぼ推測なので、間違いがあれば指摘していただけると嬉しいです。 composer.json 上記の定義で "php composer.phar install" した結果、symfony/class-loader のソースがPackagist経由で https://github.com/symfony/ClassLoader から取得され、/vendor/symfony/class-loader/Symfony/Component/ClassLoader 以下にインストールされる。 composerによって生成された /vendor/autoload.php を読み込むことでcomposerのオートローダが利用できる。 composerのオートローダではライブ
コンフィギュレーションオプション: app/config/config.yml といったファイルでどのようなコンフィギュレーションオプションが使えるのでしょうか。 ここでは、Symfony2 のコンフィギュレーションで使えるセクションとして定義されているキー(たとえば framework)ごとに、利用可能なすべてのコンフィギュレーションについて解説します。 framework doctrine security assetic swiftmailer twig monolog web_profiler フォームとバリデーション フォームフィールドタイプリファレンス バリデーション制約リファレンス Twig テンプレート関数リファレンス その他 このページの翻訳はまだ行われていません。 Symfony2 の実行に必要な要件 バンドル¶ Symfony Standard Edition にはい
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く