Вместо того, чтобы отражать материал напрямую, вы можете сделать это и использовать strtoupper
(который уже был связан Ником):
$str = "<tr><td>". $row["ID"]. "</td><td>". $row["nome"]. "</td><td>" . $row["cognome"]. "</td><td>" .$row["codicefiscale"]. "</td><td>" .$row["sedelavoro"]. "</td><td>" .$row["datanascita"]. "</td><td>" .$row["lingua"]. "</td><td>" .$row["errori"]. "</td><td>" .$row["risultato"]. "</td><td>" .$row["datatest"]. "</td></tr>";
echo strtoupper($str);
В течение долгого времени я полагал, что было значение в наличии "централизовано, декларативно, конфигурация" как XML-файлы, которые все мы раньше использовали. Тогда я понял, что большая часть материала в файлах не была конфигурация - это никогда не изменялось нигде после разработки, никогда. Тогда я понял, что "централизовал", только имеет значение в довольно маленьких системах - только в маленьких системах, будет Вы когда-либо быть в состоянии к grok конфигурационный файл в целом . И каково действительно значение понимания проводного соединения в целом, когда те же "проводки" главным образом дублированы зависимостями в коде? Таким образом, единственной вещью, которую я сохранил, являются метаданные (аннотации), который все еще довольно декларативен. Эти никогда изменение во времени выполнения и они не никогда данные "конфигурации", которые кто-то изменит на лету - таким образом, я буду думать, сохраняя его в коде, хорошо.
я использую полное автопроводное соединение так, как я могу. Я люблю его. Я не вернусь к пружине старого стиля, если не угрожается под дулом пистолета. Мои причины предпочтения полностью @Autowired
изменялись со временем.
Прямо сейчас я думаю, что самая важная причина использования автопроводного соединения состоит в том, что существует тот меньше абстракции в Вашей системе для отслеживания. "Бобового имени" эффективно не стало. Оказывается, что боб называет, только существует из-за xml. Таким образом, полного слоя абстрактной косвенности (где Вы соединили бы бобовое имя проводом "нечто" в боб "панель") не стало. Теперь я соединяю интерфейс "Foo" проводом в свой боб непосредственно, и реализация выбрана профилем во время выполнения. Это позволяет мне [1 112] работа с кодом при трассировке зависимостей и реализаций. Когда я вижу автопроводную зависимость в своем коде, я могу просто нажать, "go to implementation" вводят мой IDE, и прибывает список известных реализаций. В большинстве случаев существует всего одна реализация, и я являюсь прямым в класс. Не может быть намного более простым, чем это, и я всегда знаю точно , какая реализация используется (я утверждаю, что противоположное ближе к истине с xml, соединяющим проводом - забавный, как Ваша перспектива изменяется!)
Теперь Вы могли сказать, что это - просто очень простой слой, но каждый слой абстракции, которую мы добавляем к нашим системам увеличение сложность. Я действительно не думаю, что xml когда-либо добавлял любое действительное значение к любой системе, с которой я работал.
Большинство систем у меня есть когда-либо работа с, только имеют один конфигурация производственной среды выполнения. Могут быть другие конфигурации для теста и так далее.
я сказал бы, что полное автопроводное соединение является рубином на направляющих пружины: Это охватывает понятие, что существует шаблон нормального и общего использования, за которым следует большинство вариантов использования. С конфигурацией XML Вы разрешение большое последовательное/непоследовательное использование конфигурации, которое не может быть предназначено. Я видел, что такая конфигурация XML идет за борт с несоответствиями - это становится пересмотренным вместе с кодом? Мысль нет. Те изменения там по причине? Обычно нет.
Мы едва используем спецификаторы в нашей конфигурации и нашли другие способы решить эти ситуации. Это - ясный "недостаток", с которым мы встречаемся: мы немного изменили способ, которым мы кодируем, чтобы заставить его взаимодействовать более гладкий с автопроводным соединением: потребительский репозиторий больше не реализует дженерика Repository<Customer>
интерфейс, но мы делаем интерфейс CustomerRepository
, который расширяется Repository<Customer>
. Иногда существует также прием или два когда дело доходит до разделения на подклассы. Но это обычно просто указывает на нас в направлении более сильного ввода, который я нахожу, почти всегда лучшее решение.
, Но да, Вы связываете с конкретным стилем DI, который главным образом делает пружина. Мы даже не обнародовали методы set для зависимостей больше (Таким образом, Вы могли утверждать, что мы +1 в отделе инкапсуляции/сокрытия информации), у Нас все еще есть некоторый xml в нашей системе, но xml в основном только [1 117] содержат аномалии. Полное автопроводное соединение интегрируется приятно с xml.
единственная вещь, в которой мы нуждаемся теперь, для @Component
, @Autowired
и остальные, чтобы быть включенной в JSR (как JSR-250), таким образом, мы не должны соединяться с пружиной. Это - способ, которым вещи происходили в прошлом (эти java.util.concurrent
, материал приходит на ум), таким образом, я не был бы полностью удивлен, произошло ли это снова.
Поскольку меня здесь то, что я люблю/не люблю о Spring и автопроводном соединении.
Профессионалы:
Недостатки:
я начал использовать автопроводное соединение почти исключительно на работе, потому что мы зависим так от интеграции Spring так или иначе, что проблема зависимости спорна. Я работал над Spring проект MVC, который использовал автопроводное соединение экстенсивно и был немного тверд перенести мою голову.
я думаю, автосоединяя проводом, на любителя, как только Вы привыкаете к нему, Вы понимаете, как мощный, легкий, и намного меньше головной боли это должно работать с, чем конфигурация XML.
Я перешел на @Autowire. Поддержание конфигурации XML для чего-либо, кроме небольшого проекта, стало самостоятельной задачей, и понимание быстро ухудшилось.
IntelliJ обеспечивает хорошую (не идеальную) поддержку аннотаций Spring.