LINUX.ORG.RU

Муки творчества

 , , , ,


2

1

Всем привет!

Наваял/напастил,наговнякал вот такой примерный php-скрипт конвертора docx —> pdf.

Пока правда его не отлаживал, сразу, конечно, ничего не заработает :-)

А сюда пришел за «гнилыми помидорами» от сообщества: поругайте, подскажите, что можно сделать лучше.

Какие есть явные косяки, кроме php?

★★★★★

Кстати, да, с удалением временно каталога я, видимо, поторопился. Хз, сколько времени будет длиться конвертация,

пока поднимется XSLT 2.0 процессор на Java, пока отработает TCPDF...

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)

tcpdf

Всем привет!

Наваял/напастил,наговнякал вот такой примерный SHELL-скрипт конвертора jpeg —> png.

#!/bin/sh
convert $1 $2

Пока правда его не отлаживал, сразу, конечно, ничего не заработает :-)

А сюда пришел за «гнилыми помидорами» от сообщества: поругайте, подскажите, что можно сделать лучше.

Какие есть явные косяки, кроме SHELL?

EXL ★★★★★ ()
Ответ на: комментарий от EXL

А сюда пришел за «гнилыми помидорами» от сообщества

[trollmode] ImageMagick же, юзай только православный gd и только php. [/trollmode] А чем так плох, tcpdf?

Twissel ★★★★★ ()

Code style? Отступы? Одинаковая инфа для каждого дока, одинаковые шрифты? Неотлаженое? Бессмысленные дебаги? Полно ненужных отступов? Очевидные комменты?

kachan ★★ ()
Ответ на: комментарий от Stahl

Это понятно, у мну больше вопрос к опытным кодерам, есть ли явные огрехи, шо прямо глазки потекли :-)

Twissel ★★★★★ ()

Добавь $page_name в список параметров функции Convertion. Не понятно откуда она там вылазит.
$proc,$xmlFile,$xslTable,$saxonProc со всеми кишками можно засунуть в Convertion
Extract можно тоже вызывать из Convertion, в который передавать только $page_name, $doc_name и $tmp_dir
$upload_path - это скорее $download_path
$page_name - это скорее $output_page

Ну и всякие вещи типа $doc_name = «commands.docx»; конечно же никуда не годятся.

crutch_master ★★★★★ ()

Ты пользуешься ООП-либой, а сам городишь процедурщину. Какая гадость эта ваша заливная рыба.

Наваял/напастил,наговнякал вот такой примерный php-скрипт конвертора docx —> pdf.

Ты не наваял, и не напастил и не наговнякал _скрипт конвертора_. Ты просто взял либу, дал на вход один говно-формат, и получил (с помощью либы) другой. Впрочем, EXL тебе уже все верно выше сказал. Вопрос в том зачем ты это принес сюда?

поругайте, подскажите, что можно сделать лучше.

Так нечего ругать. Там нет ничего, кроме небольшой демки работы TCPDF.

Пока правда его не отлаживал, сразу, конечно, ничего не заработает :-)

Отлаживал? Отлаживал? :)

znenyegvkby ()
Ответ на: комментарий от crutch_master

Вот спасибо, комментарий по делу.

Ну и всякие вещи типа $doc_name = «commands.docx»; конечно же никуда не годятся.

Да, но это на первое время, чтобы оно признаки жизни подало, потом я хочу что оно получало имя файла из $POST массива, хотя тоже не фонтан, но это только начало пути.

Twissel ★★★★★ ()
Ответ на: комментарий от znenyegvkby

Вопрос в том зачем ты это принес сюда?

Чтобы получить дельный совет.

И один толковый коммент имеет место быть, надо заметить :-)

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Ааа. Ну не забудь тогда как-нить красиво прокомментировать потом

/******* ITS MA9I PERVA9I PROGA! SOSYNKI ******
******** MOU KOIIURAIT AZAZAZAZAZAZAZAZA ******
********   KYJLCCC XAKEP BAC9I PYPOK     ******

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Ты пользуешься ООП-либой, а сам городишь процедурщину.

Что поделать не умею я в ООП нормально, не джавист ;-)

Если моя работа заказчику понравится, тогда буду думать о дальнейшем развитии

в ООП-парадигме.

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

И один толковый коммент имеет место быть, надо заметить :-)

Не знаю где ты что там увидел. Все кто пытаются тебе что-либо советовать вообще что-либо _кроме remove_ твоего кода, очевидно, сами любители говнокодить. Мой тебе совет – отнеси это на говнокод.ру, там парни оценят.

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Не, она первая такого плана и на пыхе)

Троллинг засчитан ;-)

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Если моя работа заказчику понравится

Заказчик будет оценивать результат. _Результат работы_ (не твоей либы). Т.е. ты к оценке результат не имеешь отношения от слова _совсем_. Ты же просишь здесь людей оценить _твой код_. Я дал тебе уже дельный совет – с таким извращением сходи на говнокод.ру – там тебе подскажут что делать.

znenyegvkby ()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от Twissel

Хорошо бы еще что-нибудь придумать, чтобы не было шуршания диска в плане распаковки, входных и выходных файлов. Можно конечно и так, но потом всё это надо будет чистить и что-то придумывать для создания временных ссылок. Проще просто забрать файл прямо из потока, обработать и вернуть также ничего не куда не записывая, кроме как в память.

crutch_master ★★★★★ ()
Ответ на: комментарий от Twissel

Злой ты какой-то сегодня :-)

Нет, это просто последствия разочарования от корреляции названия темы с разделом web-dev.

P.S. За помидоры спасибо :-)

Ну все как ты просил.

znenyegvkby ()
Ответ на: комментарий от crutch_master

Ага, тоже об этом думал)

Но мне пока это чудо-юдо надо запустить IRL.

Twissel ★★★★★ ()
Ответ на: комментарий от znenyegvkby

Нет, это просто последствия разочарования от корреляции названия темы с разделом web-dev.

Если что пусть модеры потрут или в толксы перенесут, чтоб ты нервы не тратил ;-)

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Слишком поздно :) Вот если б ты сразу назвал тему «Оцените мой первый говнокод», (как это обычно и делают), я бы и не зашел сюда. Но я уже ухожу, так что продолжайте, не стесняйтесь :)

znenyegvkby ()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от znenyegvkby

Мопед питомник не мой, кстати, хорошо, что напомнил, надо его оттуда убрать.

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от crutch_master

у него дети кушать хотят

Бездомные дети вас не забудут (с) О.Бендер

:-D

Twissel ★★★★★ ()
Ответ на: комментарий от znenyegvkby

О, теперь точно буду знать кого кастовать, если задумаю подобную хрень реализовать на Джава через REST API, используя docx4j.

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Попробуй ещё от глобальных переменных избавиться.

И это, отступы должны приводиться в порядок в процессе написания кода, а не после.

theNamelessOne ★★★★★ ()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Ответ на: комментарий от crutch_master

Добавь $page_name в список параметров функции Convertion.

Верно подмечено, уже вижу, что с ней у меня явный косяк есть.

Twissel ★★★★★ ()
                $handle = fopen($page_name,"w");
                fclose($handle);



Это что за хрень?
Сначала код приведи в порядок, а потом на ревью выкладывай

kiotoze ★★★★ ()

Вот вы всего говорите, Царь, Царь...

а меня например интересует, почему не работает код ZipArchive(); обернутый в функцию Extract?

sudo cast deep-purple

Twissel ★★★★★ ()
Ответ на: комментарий от crutch_master

Extract можно тоже вызывать из Convertion.

Для начала,в силу вышеизложенного, просто перенесу туда её код.

И так по зернышку, по зернышку приду к рабочему варианту.

Twissel ★★★★★ ()
Ответ на: комментарий от kiotoze

Мопед не мой, это паста из примеров автора TCPDF :-)

Спасибо)

Twissel ★★★★★ ()

Ну как тебе сказать. Где соблюдение PSR? Не используй «@» в PHP, никогда. Какой смысл использовать unset перед завершением функции? Какой вообще смысл его использовать, это вопрос для другой дискуссии конечно же.

$handle = fopen($page_name,"w");
fclose($handle);

// FYI
touch($pageName);

chuppa ()
Ответ на: комментарий от chuppa

Какой смысл использовать unset перед завершением функции?

Так предлагают делать авторы Saxonica, за touch спасибо, сам думал его использовать.

Потом прочитал руководства на php.net, чего-то дернуло меня на fopen.

Благодарю за отклик.

Twissel ★★★★★ ()
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от Twissel

Но ведь переменные, которые ты удаляешь, уже и так почти теряют свою область видимости и соотв. они будут уничтожены автоматически, unset никоим образом не освобождает какую либо память, он просто уничтожает ссылку на данные, а уничтожать будет когда то потом gc.

chuppa ()
Ответ на: комментарий от chuppa

Я в курсе.

Просто пока «склеил» разные куски кода из примеров используемых проектов и получил

монстрика по ссылке.

Теперь постараюсь навести порядок.

Twissel ★★★★★ ()
Ответ на: комментарий от Twissel

Надо писать вот так:

$zip->open('file.zip', ZipArchive::CREATE);

тогда работает.

Twissel ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.